ورود

View Full Version : ارسال اطلاعات از سرور به كلاينت در asp.net با استفاده از wcf



m110_110
دوشنبه 22 خرداد 1391, 09:14 صبح
با سلام
ايا ميشه بدون اينكه يك كلاينت درخواستي به سرور بفرستد از سمت سرور مقاديري براي او فرستاد؟
ان هم با wcf
ممنون

m.akar
دوشنبه 22 خرداد 1391, 21:18 عصر
نمی توان این کار را بدون استفاده از ارسال درخواست از سمت کلاینت پیاده کرد. اما می توان ارسال درخواست را با استفاده از javascript به صورت دوره ای انجام داد.

در اینجا (dotnetbyexample.blogspot.de/2008/02/calling-wcf-service-from-javascript.html) مثالی از ساخت wcf و فراخوانی آن با javascript وجود دارد.

m110_110
پنج شنبه 25 خرداد 1391, 11:08 صبح
با سلام
اما در مورد چت اين موضوع دردسر ساز هست
خوب تا حالا هم همين كار را مي كرديم ولي مشكل در تعداد زياد كاربران هست
كه خيلي از اوقات با انكه كاربران كاري به چت ندارند همين طور درخواست به سمت سرور ميايد
اما مثل اينكه جي ميل اينكار را انجام داده
اگر در browser و از طريق gmail تان با كسي در حال چت باشيد مي بينيد دقيقا درخواست ها در دوره خاصي نيست بلكه در زماني است كه يا مي خواهيد پيام ارسال كنيد(معلومه ) و يا يك پيامي از طرف كسي براي شما ارسال شده است يعني جالبي كار اينجاست كه بدون اينكه درخواستي از سمت كلاينت در اين لحظه به سرور ارسال بشود چواب براي شما مي ايد!!!!!!!!
اما سوال من هنوز اينجاست كه اين كار چطور را مي توان پياده كرد؟
ممنون

m.akar
پنج شنبه 25 خرداد 1391, 12:08 عصر
مدلی برای برنامه های وب به نام Comet وجود دارد که در آن یک درخواست http به مدت زیادی در سرور نگه داشته می شود و از این طریق می توان از سمت سرور اطلاعاتی به کلاینت ارسال کرد.
من از این مدل تا کنون در پروژه ای استفاده نکرده ام ولی با جستجو توانستم اطلاعات خوبی از آن بدست بیاورم.

http://en.wikipedia.org/wiki/Comet_(programming) مرجع ویکی این مدل برنامه است که اطلاعات مفیدی به شما می دهد.

همچنین آقای James Simpson در دو مقاله در Code project در اینجا (http://www.codeproject.com/Articles/27107/Scalable-COMET-Combined-with-ASP-NET)و اینجا (http://www.codeproject.com/Articles/27699/Scalable-COMET-Combined-with-ASP-NET-Part-2)در ابتدا ایده پشت این مدل را مطرح می کند و سپس نمونه ای از چت را با آن پیاده سازی می کند.