نمایش نتایج 1 تا 13 از 13

نام تاپیک: راهنمایی در مورد طراحی یک برنامه مسنجر

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    پست
    71

    راهنمایی در مورد طراحی یک برنامه مسنجر

    با سلام
    من میخواهم برای یک شرکت که حدود 500سیستم دارد یک برنامه ویندوزی پیام رسان بنویسم، که هم امکان ارسال پیام و انواع فایل داشته باشد که بلافاصله گیرندگان ، پیام را دریافت کنند(به جای تابلو اعلانات) هم قابلیت چت داشته باشد. بعدهها نسخه موبایل هم برایش تهیه کنیم
    دیتابیس هم sql server هست
    شما چه روشی برای پیاده سازیش پیشنهاد میدید؟
    خودم به این نتیجه رسیدم که
    الف) یک وب سرویس داشته باشم شامل متدهایی برای ارسال و دریافت پیام/ مشاهده کاربران / مشاهده گروهها که برنامه کلاینتم اصلا مستقیم به دیتابیس وصل نشوند و نخواهند مستقیما پروسیجر اجرا کنند
    ب) یک ویندوز سرویس روی سرور داشته باشم که به دیتابیس وصل باشد و تغییرات یا پیامهای جدید را از طریق sql dependency مطلع بشود و از طریق signalR به کلاینت مربوطه، اطلاع دهد
    ج) برنامه های کلاینت با wpf که از طریق وب سرویس به دیتابیس وصل هستند و با signalR سرور متوجه میشوند پیغام جدید دارند یا نه


    اصلا این روشی که میخواهم استفاده کنم درسته؟ بار روی سرور زیاد نمیشه؟ بهتر از این هست که خود کلاینتها از طریق store procedure به بانک وصل بشن؟ روش سوکت پروگرامینگ چطوریه به نظرتون؟

    ممنون میشم راهنماییم کنید

  2. #2

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    شما به هرشکلی که دوست داری میتونی نرم افزارت رو بنویسی

    ما میتونیم هرطوری که بخوایم غذا بخویم، چه با قاشق چنگال، چه با دست و چه با پا!

    به هرحال همینکه پیامی، فایلی یا عکسی ارسال باشه به دست کاربر برسه برنامه کار میکنه منتها شکل پیاده سازیت، کارآیی، مقیاس پذیری، توسعه پذیری و .. رو تعیین میکنه


    دوست عزیز شما برای پیاده سازی یک پیامرسان به خیلی چیزا نیاز داری، منتها به نظر من نیاز به پیاده سازی الگوی Observer هست اگر و اگر نمیخوای ساختار Pear To Pear رو پیاده کنی.

    منظورم اینه که پیام از من به سرور و از سرور به شما منتقل بشه که دقیقا میشه الگوی Observer.

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    پست
    71

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    نقل قول نوشته شده توسط m.r226 مشاهده تاپیک
    شما به هرشکلی که دوست داری میتونی نرم افزارت رو بنویسی

    ما میتونیم هرطوری که بخوایم غذا بخویم، چه با قاشق چنگال، چه با دست و چه با پا!

    به هرحال همینکه پیامی، فایلی یا عکسی ارسال باشه به دست کاربر برسه برنامه کار میکنه منتها شکل پیاده سازیت، کارآیی، مقیاس پذیری، توسعه پذیری و .. رو تعیین میکنه


    دوست عزیز شما برای پیاده سازی یک پیامرسان به خیلی چیزا نیاز داری، منتها به نظر من نیاز به پیاده سازی الگوی Observer هست اگر و اگر نمیخوای ساختار Pear To Pear رو پیاده کنی.

    منظورم اینه که پیام از من به سرور و از سرور به شما منتقل بشه که دقیقا میشه الگوی Observer.
    خوب من میخوام پیاده سازیم بهینه باشه و کمترین بار روی سرور باشه. وگرنه میشد یک تایمر بگذارم و داخل اون، همش پروسیجر select را اجرا کنم. اگر سطری وجود داشت به کاربر نشان بدهم

    در مورد الگوی observer میشود بیشتر توضیح بدهید؟

  4. #4

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    سلام
    این روش چطوریه؟:
    1. وب سرویس در سرور اجرا شود
    2. کلاینت ها با ارتباط به سرور (وب سرویس) پیام ها رو بفرستند و پیام در دیتابیس ذخیره شود
    3. در وب سرویس لیستی از کاربرانی که پیام جدید دارند نگه داشته شود (یک متغییر استاتیک به صورت لیست) و به محض ارسال پیام از کلاینت ها، آی دی مخاطب به این لیست افزوده شود (ضمنا در استارت آپ وب سرویس باید این لیست از دیتابیس بروز رسانی شود)
    4. کلاینت ها با تایمر از سرور در مورد وجود پیام جدید سوال کنند (که این کار از طریق سوکت هم ممکنه، یعنی کلاینت ها به سرور گوش بدن و سرور بهشون اطلاع بده ولی به نظر من این که کلاینت از طریق وب سرویس اخرین وضعیت رو چک کنه بهتره)
    5. در صورت وجود پیغام جدید کلاینت در خواست گرفتن پیام ها رو بده و سرور بعد از ارسال پیام ها اون آی دی رو از لیست بالا حذف کنه

    لطفا اگر جایی مشکل داره نظر بدبد،

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    پست
    71

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    نقل قول نوشته شده توسط mrbm_2007 مشاهده تاپیک
    سلام
    این روش چطوریه؟:
    1. وب سرویس در سرور اجرا شود
    2. کلاینت ها با ارتباط به سرور (وب سرویس) پیام ها رو بفرستند و پیام در دیتابیس ذخیره شود
    3. در وب سرویس لیستی از کاربرانی که پیام جدید دارند نگه داشته شود (یک متغییر استاتیک به صورت لیست) و به محض ارسال پیام از کلاینت ها، آی دی مخاطب به این لیست افزوده شود (ضمنا در استارت آپ وب سرویس باید این لیست از دیتابیس بروز رسانی شود)
    4. کلاینت ها با تایمر از سرور در مورد وجود پیام جدید سوال کنند (که این کار از طریق سوکت هم ممکنه، یعنی کلاینت ها به سرور گوش بدن و سرور بهشون اطلاع بده ولی به نظر من این که کلاینت از طریق وب سرویس اخرین وضعیت رو چک کنه بهتره)
    5. در صورت وجود پیغام جدید کلاینت در خواست گرفتن پیام ها رو بده و سرور بعد از ارسال پیام ها اون آی دی رو از لیست بالا حذف کنه

    لطفا اگر جایی مشکل داره نظر بدبد،
    اون تایمر بده. چون سرور همش درگیره حتی اگه پیغام جدیدی وجود نداشته باشه

  6. #6
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    سلام وقت بخیر.

    میتونید از سوکت استفاده کنید. در این حالت نیازی به تایمر ندارید.
    روند برنامه هم به این صورته:
    -برنامه سرور درحال اجرا هست.
    -برنامه کلاینت هنگام اجرا مشخصات خودشو میفرسته به سرور(آی پی و نام کاربریش)
    -سرور مشخصات کاربران متصل به سرور رو جایی نگه میداره
    -سرور به سیستم تازه متصل شده لیست کاربران آنلاین رو میده
    -کلاینت اقدام به ارسال پیام میکنه(همراه پیام نام کاربری یوزری که باید پیغام رو دریافت کنه ارسال میشه)
    -سرور پیغام رو دریافت میکنه
    -پیغام در سرور ذخیره میشه(بنا به سیاست خودتون که سوابق پیغام بمونه یا نه)
    -سرور از لیست کاربران آنلاین جستجو میکنه اگه همون فرد بود پیغام رو بهش ارسال میکنه . اگر نبود پیغام میره تو صف ارسال تا موقع آنلاین شدن کاربر پیغام رو بفرسته.
    -کلاینت دیسکانکت میشه و اطلاعات کاربران سرور بروز میشه.

    در این روش هروقت پیغام جدیدی وجودداشت سرور براتون ارسال میکنه و نیازی به سلکت های پی در پی نیست.



    یا اینکه برید سراغ نود جی اس nodejs .

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    پست
    71

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    سلام وقت بخیر.

    میتونید از سوکت استفاده کنید. در این حالت نیازی به تایمر ندارید.
    روند برنامه هم به این صورته:
    -برنامه سرور درحال اجرا هست.
    -برنامه کلاینت هنگام اجرا مشخصات خودشو میفرسته به سرور(آی پی و نام کاربریش)
    -سرور مشخصات کاربران متصل به سرور رو جایی نگه میداره
    -سرور به سیستم تازه متصل شده لیست کاربران آنلاین رو میده
    -کلاینت اقدام به ارسال پیام میکنه(همراه پیام نام کاربری یوزری که باید پیغام رو دریافت کنه ارسال میشه)
    -سرور پیغام رو دریافت میکنه
    -پیغام در سرور ذخیره میشه(بنا به سیاست خودتون که سوابق پیغام بمونه یا نه)
    -سرور از لیست کاربران آنلاین جستجو میکنه اگه همون فرد بود پیغام رو بهش ارسال میکنه . اگر نبود پیغام میره تو صف ارسال تا موقع آنلاین شدن کاربر پیغام رو بفرسته.
    -کلاینت دیسکانکت میشه و اطلاعات کاربران سرور بروز میشه.

    در این روش هروقت پیغام جدیدی وجودداشت سرور براتون ارسال میکنه و نیازی به سلکت های پی در پی نیست.



    یا اینکه برید سراغ نود جی اس nodejs .
    من توی روش پیشنهادیم که از تایمر استفاده نکردم. میخوام از signalR استفاده کنم
    سوکت چه مزیتی نسبت به signalRداره؟

    nodejs مگه توی برنامه های ویندوزی هم استفاده میشه؟

  8. #8

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    یه سوال مهم،
    اینکه مکانیز داخلی سوکت چجوریه؟ یعنی فرق اش با تایمر چیه؟ وقتی شروع به گوش دادن کردن به طور مدام چک نمی کنه؟؟
    در مورد signalR هم می تونید توضیح بدید؟ یا منبع معرفی کنید؟

  9. #9

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    نقل قول نوشته شده توسط mrbm_2007 مشاهده تاپیک
    یه سوال مهم،
    اینکه مکانیز داخلی سوکت چجوریه؟ یعنی فرق اش با تایمر چیه؟ وقتی شروع به گوش دادن کردن به طور مدام چک نمی کنه؟؟
    در مورد signalR هم می تونید توضیح بدید؟ یا منبع معرفی کنید؟
    کسی اینجا نیست در این مورد اطلاعاتی داشته باشه؟

  10. #10
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    نقل قول نوشته شده توسط mrbm_2007 مشاهده تاپیک
    یه سوال مهم،
    اینکه مکانیز داخلی سوکت چجوریه؟ یعنی فرق اش با تایمر چیه؟ وقتی شروع به گوش دادن کردن به طور مدام چک نمی کنه؟؟
    در مورد signalR هم می تونید توضیح بدید؟ یا منبع معرفی کنید؟
    ببینید به زبان ساده میشه اینو گفت. من برنامه هستم. یه نفرو استخدام میکنم (جناب سوکت) میفرستم جلو درمون فال گوش وای میسه. اگه پستچی نامه ای واسم آورد اون جناب سوکت زود میاد به من خبر میده.
    حالا شما وقتی سوکت ایجاد میکنید میگید آی پی من اینه و پورتمم اینه (اینا میشه آدرس شما برا سرور هم همین مراحل صدق میکنه) سرور هم آی پی و پورت شما رو میدونه شما هم مال سرور رو میدونید. حالا سرور خواست به شما چیزی ارسال کنه به اون آی پی و پورتتون ارسال میکنه. سوکت شما هم گوش به زنگه هروقت چیزی رسید به شما خبر میده (برا سرورم اینطوره)

    اگه تایمر استفاده کنید مجبورید مثلا هر ثانیه یه بار به سرور زنگ بزنید بگید که من پیام جدیدی ندارم؟ سرور هم بهتون میگه نه.(اینکار باعث افزایش ترافیک شبکه میشه. فرض کنید این پیام رسان شما چیزی حدود 10000 تا کاربر داره و هر کاربر هر ثانیه درخواست میفرسته اونموقع باید سرور هر ثانیه ده هزارتا درخواستو جواب بده.) الان شما هر روز نمیرید که پستخونه. آدرس دارید هر وقت نامه ای داشتید میاد در خونتون.(تو این حالت وقتی کاربری پیام داشته باشه فقط به اون پیام رو ارسال میکنه و بار زیادی روش نیست.)

    فک کنم مثال خیلی ساده ای زدم.


    نقل قول نوشته شده توسط aftabgarmabakhsh مشاهده تاپیک
    من توی روش پیشنهادیم که از تایمر استفاده نکردم. میخوام از signalR استفاده کنم
    سوکت چه مزیتی نسبت به signalRداره؟

    nodejs مگه توی برنامه های ویندوزی هم استفاده میشه؟
    در مورد سینگل آر اطلاعاتی ندارم.

    بله شما میتونید nodejs رو روی یه سیستم یا وی پی اس نصب کنید . و سرور براش بنویسید.
    سپس برنامه کلاینت رو با هر زبونی پیاده سازی کنید. شما در حقیقت به یک آی پی و پورت خاصی اطلاعات ارسال میکنید و در طرف مقابل اونو دریافت و پردازش میکنه حالا ممکنه سرورتون هر چیزی باشه چه نود و...

    این دوتا لینک رو نگاه کنید.
    https://www.youtube.com/watch?v=HyGtI17qAjM بخش سرور
    https://www.youtube.com/watch?v=nwV3MS6pryY بخش کلاینت

  11. #11

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    نقل قول نوشته شده توسط aftabgarmabakhsh مشاهده تاپیک
    در مورد الگوی observer میشود بیشتر توضیح بدهید؟
    فارسی
    https://www.dotnettips.info/post/236...server-pattern

    انگلیسی عالی
    https://refactoring.guru/design-patterns/observer این بخشش رو اول بخون Real World Analogy

  12. #12

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    ببینید به زبان ساده میشه اینو گفت. من برنامه هستم. یه نفرو استخدام میکنم (جناب سوکت) میفرستم جلو درمون فال گوش وای میسه. اگه پستچی نامه ای واسم آورد اون جناب سوکت زود میاد به من خبر میده.
    حالا شما وقتی سوکت ایجاد میکنید میگید آی پی من اینه و پورتمم اینه (اینا میشه آدرس شما برا سرور هم همین مراحل صدق میکنه) سرور هم آی پی و پورت شما رو میدونه شما هم مال سرور رو میدونید. حالا سرور خواست به شما چیزی ارسال کنه به اون آی پی و پورتتون ارسال میکنه. سوکت شما هم گوش به زنگه هروقت چیزی رسید به شما خبر میده (برا سرورم اینطوره)

    اگه تایمر استفاده کنید مجبورید مثلا هر ثانیه یه بار به سرور زنگ بزنید بگید که من پیام جدیدی ندارم؟ سرور هم بهتون میگه نه.(اینکار باعث افزایش ترافیک شبکه میشه. فرض کنید این پیام رسان شما چیزی حدود 10000 تا کاربر داره و هر کاربر هر ثانیه درخواست میفرسته اونموقع باید سرور هر ثانیه ده هزارتا درخواستو جواب بده.) الان شما هر روز نمیرید که پستخونه. آدرس دارید هر وقت نامه ای داشتید میاد در خونتون.(تو این حالت وقتی کاربری پیام داشته باشه فقط به اون پیام رو ارسال میکنه و بار زیادی روش نیست.)

    فک کنم مثال خیلی ساده ای زدم.




    در مورد سینگل آر اطلاعاتی ندارم.

    بله شما میتونید nodejs رو روی یه سیستم یا وی پی اس نصب کنید . و سرور براش بنویسید.
    سپس برنامه کلاینت رو با هر زبونی پیاده سازی کنید. شما در حقیقت به یک آی پی و پورت خاصی اطلاعات ارسال میکنید و در طرف مقابل اونو دریافت و پردازش میکنه حالا ممکنه سرورتون هر چیزی باشه چه نود و...

    این دوتا لینک رو نگاه کنید.
    https://www.youtube.com/watch?v=HyGtI17qAjM بخش سرور
    https://www.youtube.com/watch?v=nwV3MS6pryY بخش کلاینت
    مثال عالی بود، در واقع ترافیک روی شبکه به شدت کم خواهد شد! گرفتم.

  13. #13
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    پست
    71

    نقل قول: راهنمایی در مورد طراحی یک برنامه مسنجر

    ممنون لطف کردید

تاپیک های مشابه

  1. پاسخ: 3
    آخرین پست: یک شنبه 14 دی 1393, 09:47 صبح
  2. پاسخ: 0
    آخرین پست: سه شنبه 09 اسفند 1390, 22:11 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •