هل تريد الدفع أو السحب لخادم التشغيل الآلي في الوقت الفعلي تقريبًا؟

StackOverflow https://stackoverflow.com/questions/58757

سؤال

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

ما هي الطريقة المثالية، من حيث الأداء وقابلية التوسع وتحميل الشبكة، لنقل البيانات في بيئة قريبة من الوقت الفعلي؟

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

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

المحلول

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

تدعم معايير الصناعة - مثل OPC وGID - كليهما.يقوم الخادم بإرسال التحديثات إلى العملاء المشتركين، ولكن يمكن للعميل سحب بعض البيانات التي نادرًا ما يتم استخدامها دون إزعاج الاشتراك.

نصائح أخرى

طالما أن العميل هو الذي يبدأ الاتصال (لتجاوز مشكلات جدار الحماية وNAT)، فلا بأس في كلتا الحالتين.

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

ستكون حركة مرور الشبكة أقل عندما يقوم الخادم بإرسال التحديثات دون أن يطلب العميل التحديثات باستمرار.

ماذا لديك من جانب العميل؟تسمح العديد من جدران الحماية بالطلبات الصادرة ولكنها تحظر الطلبات الواردة.بمعنى آخر، قد يكون السحب هو خيارك الوحيد إذا كنت تستخدم الإنترنت إلا إذا كنت ترسل رسائل بريد إلكتروني.

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