سؤال

لقد واجهت مؤخرًا بعض الحالات التي يقوم فيها الخادم بتوزيع دفق حدث يحتوي على نفس البيانات بالضبط لجميع المستمعين ، مثل مربع "النشاط الحديث".

لقد حدث لي أنه من الغريب للغاية وغير فعال أن يكون خادم مثل Apache يقوم بتشغيل مؤشر ترابط معالجة مؤشرات الترابط والاستعلام عن قاعدة البيانات لكل دفق المذنب الذي يحتوي على نفس البيانات.

ما سأفعله لتلك التدفقات العالمية (وليس لكل مستخدم) يتم تشغيل مؤشر ترابط واحد ينبعث منه بشكل مستمر البيانات ، وخيط جديد (أخضر) لكل طلب جديد يخرج الرؤوس ثم يندمج في الخيط الرئيسي.

هل من الممكن لخيط واحد تقديم مآخذ متعددة ، أو لعدة عملاء للاستماع إلى نفس المقبس؟

مثال

س = الحدث

       # threads received
|  a b # 3
o / /  # 3       -
|/_/
|      # 1
o  c   # 2       a, b
| /
o/     # 2       a, b
o      # 1       a, b, c
|      #                    connection b closed
o      # 1       a, c

هل يوجد شيء كهذا؟ هل ستعمل؟ هل من الممكن أن تفعل؟

إخلاء المسئولية: أنا لست خبير خادم.

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

المحلول

تحقق من Node.js - خادم واحد ملولب ، يحرك الحدث. يستخدم JavaScript كمكافأة.

نصائح أخرى

إذا كنت تستخدم ASP.NET ، فيجب أن يكون المنشور التالي مفيدًا

http://beta.codeproject.com/kb/aspnet/cometasync.aspx

بالمناسبة ، من الممكن تنفيذ المذنب لخدمة أكثر من عميل واحد لكل موضوع ، ولكن يبدو أن موضوع واحد فقط لجميع العميل لا يكفي؟

أنت تتحدث عن "طلبات الويب غير المتزامنة" المطبقة على المذنب ، بعضها مثل "المذنب غير المتزامن".

في رأيي هذا النهج ، الشائع جدًا هذه الأيام ، هو معيبة للغاية.

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