سلام
ایده های زیادی میتوان برای یک سیستم پیام رسانی به کاربران ارائه داد ...
ولی چیزی که شما با مشخصات تان میخواهید یک برنامه با معماری ساده Server/Client ای با Database مشترک است.
چیزی شبیه تلگرام
پیشنهاد اول اگر دنبال برنامه آماده هستید و مثلا نیاز به یک جور تلگرام درون سازمانی دارید، میتوانید از پروتکل
XMPP
استفاده کنید
XMPP یک پروتکل قدیمی برای جابجایی پیام است وبرنامه های رایگان زیادی برای سرور و کلاینت و موبایل و... روی آن عرضه شده است.
نرم افزارهای سرور XMPP
به عنوان مثال در سرور شرکت میتوانید ejabberd یا Openfire را نصب کنید.
نرم افزارهای کلاینت ویندوز و اندروئید و... XMPP
به عنوان کلاینت هم میتوانید از نرم افزار عالی Thunderbird یا Spark و... استفاده کنید.
پیشنهاد دوم چرا بجای XMPP از SMTP استفاده نکنیم؟
یعنی چرا از یک ایمیل ساده درون سازمانی استفاده نکنید ؟!
الان در شرکت خودتان با ایمیل درون سازمانی خودمان در ارتباط هستیم
خود ویندوز برنامه Mail دارد یا میتوانید از Thunderbird و Outlook و... استفاده کنید.
اغلب گوشی های موبایل هم برنامه مشابهی دارند یا میتوانید برنامه K9 را نصب کنید.
همین شرایطی هم که گفتید وجود دارد.
الان تا کسی ایمیلی برای دیگری میزد Popup ای ظاهر میشود و رسیدن پیام جدید را اطلاع میدهد
کافیست در سرور نرم افزار غولی مانند Exchange Server گرفته تا برنامه کوچکی مانند hMailServer را نصب کنید.
پیشنهاد سوم (برنامه نویسی) اگر واقعا نیازتان به یک برنامه ساده است، پیشنهاد میکنم از همین موارد قبلی استفاده کنید.
خودتان بخواهید کدنویسی کنید، باید ماه های طولانی کد بزنید تا به نقطه این برنامه های موجود برسید.
اگر وارد مسیر کدنویسی شدید که یا باید با یکی App-Server و App-Client و Database کار را انجام دهید.
یعنی هر کلاینت پیام خود را به سرور میدهد و سرور در دیتابیس ذخیره میکند و هر کلاینت که آنلاین شد پیام مختص همان کلاینت را به او میدهد.
و یا اگر خیلی بخواهیم ساده اش کنیم ...
میتوانید یک App با یک Database مشترک در نظر بگیرید که App مدام به دیتابیس سرکشی کند
( یا از تکنیک هایی مانند SqlDependency استفاده کنید) و پیام های جدید را دریافت کند.
یعنی با قبول امنیت کمتر، برنامه سرور را حذف کرده و هر کلاینت مستقیم به دیتابیس متصل شود پیام جدید را در دیتابیس ذخیره و پیام های خودش را از دیتابیس بخواند.
نوشته شده توسط:
zahmah
بهترین کامپننت برای اینکار چیست ؟
چیزی که شما میخواهید یک برنامه است و برنامه کاملا آماده داریم که این کار را انجام دهد و نام برخی موارد را خدمت تان عرض کردم
ولی Component برای چه؟ مثلا چه کاری انجام دهد؟ یک پنجره باشد با یک Label روش که متنی را نشان دهد؟ یعنی ما نمیتوانیم یک Window/Form/Page درست کنیم با یک Label رویش؟
مانند این است که من بخواهم یک برنامه حسابداری بنویسم و دنبال Component بگردم ! چه کند؟ مثلا اعداد را جمع کند
بله! قطعا شما از Library ها و Component هایی استفاده خواهید کرد ولی موارد عمومی مانند EF یا Castle یا Newtonsoft و... و... که همیشه استفاده میکنیم.
بررسی بفرمائید، سوال جدیدی بود در خدمت هستم
روز و شب تان خوش