سؤال

أولا وقبل كل شيء، أقوم بإنشاء شيء مثل حل عميل / خادم باستخدام موقع ASP.NET قياسي - أعرف أن هذه الطريقة لا تنصح، ومعظم الناس يحبون تصرخ "المذنب"! أو "مآخذ HTML5!" - لكن من فضلك لا ؛-)!

ما أقوم به ...

أنا أقوم بإنشاء MMORPG على موقع ويب.

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

مشكلتي

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

الآن أقوم بما يلي: giveacodicetagpre.

(هذا هو نوع من نمط المراقب)

ما يحدث الآن هو حالة السباق. سيحصل الشخص الذي يحمل الحدث Page_load على كل من هذه الأحداث، والذي لا يعمل من تشغيله، لن يتغير أي تغييرات في UI.

إذن ما الذي أريده حقا؟

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

طريقة واحدة للقيام بذلك هو بعض الشيء في الجلسة، مع True / False .. ولكن أود حقا بعض الطريقة الأفضل!

شكرا!

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

المحلول

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

بدلا من ذلك ما يمكنك القيام به هو حفظ حالة حالة التطبيق ومتى يأتي الطلب خدمة الاستجابة بناء على الحالة المحدثة لكائنك.أي كيفية بدء العميل طلب طلب.

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