PDA

View Full Version : سوال: استفاده از رویدادها در Silverlight WCF RIA



mahdi7s
دوشنبه 15 شهریور 1389, 12:59 عصر
سلام

من در حال نوشتن یک چت روم بوسیله سیلورلایت هستم...
برخی از اطلاعات و گپ های پایدار که باید در دیتابیس ذخیره بشن با استفاده از Entity Framework و لایه Domain Service(برای دسترسی و ویراش کلاینت) انجام می شه.
اما سوال:
راهی وجود داره که من یک رویداد سراسری رو در یکی از کلاس های موجود در قسمت هاست این چت روم(همون برنامه Asp.Net ) قرار بدم تا تمام کلاینت هایی که وارد چت روم می شن (تمام برنامه های چت که در مرورگر کاربران در رایانه های متفاوت) بتونن این رویداد رو هندل بکنن؟

هدف من از گذاشتن یک رویداد سراسری در هاست چت روم مطلع کردن کاربری از اضافه شدن گپ جدید توسط یک کاربر دیگه هست
البته اینکارو میشه با یک تایمر و... هم انجام داد که در این صورت سرعت برنامه پایین میاد و با زیاد شدن کاربران این مسئله قشنگ خودشو نشون میده

ممنون

sia_2007
دوشنبه 15 شهریور 1389, 17:20 عصر
به این میگن Duplex Communication ؛ که معنیش میشه این که سرور به کلاینت اطلاع رسانی کنه.
ما تو WCF این رو داریم؛ ولی WCF RIA رو نمیدونم در چه حدیه
الآن سیستم چتتون رو چه جوری پیاده سازی کردید ؟!

mahdi7s
سه شنبه 16 شهریور 1389, 00:03 صبح
ممنون همین کلمه شما (Duplex Communication ) خیلی بهم کمک کرد!


الآن سیستم چتتون رو چه جوری پیاده سازی کردید ؟!
یه SL Business App ایجاد و یک EF از روی دیتابیس Generate کردم یک کلاس Domain Service هم برای ویرایش و ... دیتابیس از طرف کلاینت بر روی EF Model کپسوله کردم و خیلیش هم مونده ...

sia_2007
سه شنبه 16 شهریور 1389, 09:25 صبح
فرض کن؛ رضا میخواد به حسن و یا همه ی کاربرها پیغام بده.
خب ؛ حسن یکی از متدهای سرویست رو Call میکنه؛ و پیغام رو میفرسته.
بعدش سرور چه جوری پیغام رو میرسونه دست حسن یا کل کاربرها ؟

mahdi7s
پنج شنبه 18 شهریور 1389, 10:56 صبح
فرض کن؛ رضا میخواد به حسن و یا همه ی کاربرها پیغام بده.
خب ؛ حسن یکی از متدهای سرویست رو Call میکنه؛ و پیغام رو میفرسته.
بعدش سرور چه جوری پیغام رو میرسونه دست حسن یا کل کاربرها ؟

ببخشید کمی دیر شد

خوب در پیاده سازی duplex communication گذاشتن یک Callback کاری نداره
و مثلا Callback ای که برای اضافه شدن یک گپ نوشتیم چک می کنه اگه این گپ واسه همین کاربره اونو تو صفحه اش نشون میده
به همین راحتی:لبخندساده: