سؤال

لقد كنت أبحث عن طرق لتنفيذ المراسلة المشابهة لـ Gmail داخل المتصفح، ووصلت إلى المذنب مفهوم.ومع ذلك، لم أتمكن من العثور على تطبيق .NET جيد يسمح لي بالقيام بذلك ضمن IIS (تطبيقنا مكتوب بلغة ASP.NET 2.0).

تتطلب الحلول التي وجدتها (أو التي يمكن أن أفكر فيها، في هذا الصدد) ترك سلسلة رسائل قيد التشغيل لكل مستخدم - حتى يتمكن من إرجاع الرد إليه بمجرد تلقيه رسالة.هذا لا يتسع على الإطلاق، بطبيعة الحال.

لذا سؤالي هو - هل تعرف تطبيق ASP.NET لـ Comet الذي يعمل بطريقة مختلفة؟هل هذا ممكن حتى مع IIS؟

هل كانت مفيدة؟

المحلول

من الصعب توسيع نطاق المذنب باستخدام IIS بسبب الاتصال المستمر للمذنب، ولكن هناك فريق يبحث في سيناريوهات المذنب الآن.أنظر أيضا مدونة آرون ليرش كما أعتقد أنه قام ببعض أعمال Comet المبكرة في ASP.NET.

نصائح أخرى

ويب سينك هو خادم Comet قابل للتطوير ومتوافق مع المعايير ويتكامل مباشرة مع خط أنابيب IIS/.NET.كما أنها متاحة عند الطلب كخدمة مستضافة.

وهو يدعم رسميًا ما يصل إلى 20000 اتصال عميل متزامن لكل عقدة خادم، لكن الاختبارات الفردية شهدت وصوله إلى 50000 اتصال.يعد معدل نقل الرسائل مثاليًا عند علامة 1000-5000 عميل متزامن، مع تسليم الرسائل بما يصل إلى 300000 رسالة في الثانية من عقدة واحدة.

وهو يتضمن دعمًا من جانب العميل لـ JavaScript و.NET/Mono وiOS وMac OS X وJava وSilverlight وWindows Phone وWindows Runtime و.NET Compact، مع دعم من جانب الخادم لـ.NET/Mono وPHP.

يتم دعم التجميع باستخدام إما SQL Server أو Azure Caching خارج الصندوق، ولكن يمكن كتابة موفري الخدمة المخصصين لأي شيء تقريبًا (Redis، NCache).

تنصل: أنا أعمل في الشركة التي تطور هذا المنتج.

لقد كتبت مؤخرًا أ مثال بسيط لخادم الدردشة الطويلة للاقتراع باستخدام وحدات تحكم MVC 3 Async استنادًا إلى أ مقال عظيم بقلم كلاي لينهارت

يمكنك استخدام ال مثال على نشر AppHarbor لقد قمت بالإعداد بناءً على المصدر من مشروع BitBucket.

أيضا، مزيد من المعلومات المتاحة من بلدي تدوينة تشرح المشروع.

في الواقع هناك العديد من الخيارات لإنشاء موقع ويب مدعوم بتقنية Ajax باستخدام ASP.NET ولكن بصراحة، بوكين هي أسهل طريقة لإنشاء تطبيق ويب مدعوم من Comet Ajax.لقد أنقذ أحد مشاريع شركتي.

يمكنك أيضًا إلقاء نظرة على بوابة المؤسسة Kaazing التي أصدرت إصدارًا إنتاجيًا لبوابة webSocket [HTML5] الخاصة بها والتي تحل محل طريقة المذنب تمامًا وتتيح اتصالات ثنائية الاتجاه بين المتصفحات وخوادم التطبيقات.

قد تنظر أيضا إلى العروض التوضيحية للبث الخفيف

لقد استخدمت موقعًا للدردشة منذ فترة طويلة يستخدم خادم تدفق http مخصصًا.لقد قمت بالفعل بإعادة إنتاج هذا البرنامج في وقت ما بدافع الفضول المطلق، وأعتقد أنه من السهل القيام بذلك.لن أحاول أبدًا تنفيذ نوع مماثل من "الطلب اللانهائي" في IIS، خاصة في ASP.NET، لأن الطلبات تربط مؤشر ترابط تجمع مؤشرات الترابط (أو مؤشر ترابط الإدخال والإخراج، في حالة استخدام معالجات غير متزامنة) إلى أجل غير مسمى، مما يعني أنه يمكنك فقط التعامل مع الكثير لكل خادم كما يسمح تكوين تجمع مؤشرات الترابط الخاص بك.

إذا كانت لدي حاجة مشروعة قوية لمثل هذه الوظيفة، فسأكتب بصراحة خادم http مخصصًا لها.

أعلم أن هذا لا يجيب حقًا على سؤالك، لكنني أعتقد أن المدخلات قد تكون ذات صلة.

نشرت مجموعة WS-I شيئًا يسمى "ملف تعريف آمن وموثوق" التي تحتوي على سمكة زجاجية و تنفيذ صافي هذا على ما يبدو التشغيل البيني حسنًا.

مع أي حظ هناك جافا سكريبت التنفيذ هناك أيضًا.

يوجد أيضًا تطبيق Silverlight الذي يستخدم HTTP دوبلكس. أنت تستطيع قم بتوصيل جافا سكريبت إلى Silverlight كائن للحصول على عمليات الاسترجاعات عند حدوث دفعة.

هناك أيضا الإصدارات التجارية المدفوعة أيضًا.

أعتقد أن نهج Comet غير قابل للتطوير حقًا إلا إذا كنت مستعدًا لتوسيع مزرعة الويب أفقيًا (عن طريق إضافة المزيد من خوادم الويب إلى هذا المزيج).الطريقة التي تعمل بها هي أنها تترك اتصال TCP مفتوحًا لكل جلسة مستخدم، فقط حتى يتمكن الخادم من دفع الأشياء إلى هذا الاتصال من وقت لآخر لإبلاغ المستخدم على الفور بأي تغيير أو نشاط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top