ما هي أفضل طريقة لإعلام غير تطبيق ويب تغيير على صفحة ويب ؟

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

سؤال

دعونا نقول لدي اثنين من التطبيقات التي يجب أن تعمل معا إلى حد ما.

  1. تطبيق ويب (PHP, روبي على القضبان،...)
  2. تطبيق سطح المكتب (Java, C++, ...)

تطبيقات سطح المكتب يجب أن يكون إخطار من تطبيق ويب و التأخير بين إرسال و استلام الإخطار يجب أن تكون قصيرة.(< 10 ثوان)

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

وأنا أقدر أي الأفكار التي يمكن أن تعطي لي.

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

المحلول

أعتقد أن "أفضل الممارسات" هنا سوف تعتمد على عدد من عملاء سطح المكتب تتوقع أن تخدم.إذا كان هناك واحد فقط من سطح المكتب ليتم إعلامك ، ثم الاقتراع قد يكون نهج جيد -- نعم ، الاقتراع هو أكثر بكثير من النفقات العامة من الحدث القائم على الإشعار, ولكن من المؤكد سوف يكون الحل الأسهل لتنفيذ.

إذا النفقات العامة الاقتراع هو حقا غير مقبول ، ثم أرى اثنين الأساسية البدائل:

  1. الحفاظ على اتصال مستمر بين سطح المكتب و خادم الويب (يمكن أن يكون "المذنب"على غرار طلب ويب ، أو الخام اتصال مأخذ التوصيل)
  2. تعرض خدمة من داخل التطبيق سطح المكتب, و تسجيل عنوان الخدمة مع خادم الويب.هذه الطريقة ، خادم الويب يمكن الاتصال إلى سطح المكتب حسب الحاجة.

حذر من أن يكون, على الرغم من ذلك-كل البدائل هي الساندة الكامل من gotchas.بعض النقاط البارزة:

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

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

مرة أخرى, كل من هذه الطرق ربما تكون معقدة جدا, لذلك أنا أقول الاقتراع هو على الأرجح أفضل رهان.

نصائح أخرى

أنا أرى طريقتين:

  • وتطبيقات سطح المكتب الخاص بك استطلاعات الرأي التطبيق على شبكة الإنترنت
  • التطبيق الويب الخاص بك بإعلام تطبيق سطح المكتب

التطبيق الويب الخاص بك يمكن نشر تغذية RSS, ولكن سطح المكتب الخاص بك التطبيق سوف لا تزال بحاجة الى استطلاع تغذية كل 10 ثانية.

المرور لا تحتاج أن تكون كبيرة:إذا كنت تستخدم HTTP رئيس طلب, سوف تحصل على علبة صغيرة مع تاريخ آخر تعديل (مريح اسمه آخر تعديل).

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

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

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

طبقة من القرض سيساعد على نطاق خارج النظام.

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

عدد من الناشرين تحتاج مع زيادة عدد المستخدمين.

تحرير:نسيت أن أذكر أن سطح المكتب التطبيق سوف تحتاج إلى الاستماع على مأخذ توصيل.

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