سؤال

أنا أتساءل عما إذا كان من الممكن أن يلقي نتيجةvar hub = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();إلى صفي ChatHub الفعلي.لأن GlobalHost.ConnectionManager.GetHubContext<ChatHub>() as ChatHub فشل

في صف ChatHub الخاص بي لدي طريقة UpdateTime():

public void SendTimeUpdate(DateTime time, string auth)
{
    Clients.All.UpdateTime(time, auth);
}

وأريد أن أسميها من صفي الآخر.نظرًا لأنني لا أستطيع الإرسال إلى ChatHub واستدعاء SendUpdate، فلا بد لي من الذهاب:

GlobalHost.ConnectionManager.GetHubContext<ChatHub>().Clients.All.UpdateTime(time, auth);

ولكن إذا سلكت هذا الطريق، فلن تتم إضافة طريقة SendTimeUpdate في البرنامج النصي للوكيل /signalr/hubs

هل هناك حل لهذه المشكلة؟أرغب في الحصول على مثيل Hub المكتوب وعدم استدعاء الأشياء مباشرة على خاصية العملاء في IHubContext.

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

المحلول

لا لا يمكنك الإدلاء بالنتيجة ....GetHubContext<.... إلى صفك المحوري.آسف :(.

يقوم نهج GetHubContext بإرجاع ملف IHubContext عندما يكون المحور مجرد IHub.

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

نصائح أخرى

ألا يستطيع فصلك إنشاء اتصال بالمركز الخاص بك واستدعاء الطريقة بهذه الطريقة؟

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