2015-02-12 9 views
5

के बाहर सिग्नलआर हब में कॉलर विधि को कॉल करना मेरे पास सिग्नलआर के कॉलर विधि के बारे में मेरे दिमाग में एक प्रश्न है। हब विधि में हम इस तरह क्लाइंट साइड फ़ंक्शन को कॉल कर सकते हैं।हब संदर्भ

Clients.Caller.addContosoChatMessageToPage(name, message); 

लेकिन जब मैं इसे हब संदर्भ के बाहर से कॉल करने के लिए उपयोग करते हैं यह नहीं मिला या नहीं लागू किया गया है ?? इस तरह ..

var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); 
context.Clients.Caller.reportProgress(recordCount,totalCount); 

कोई इस हिस्से में मुझे प्रबुद्ध या वहाँ अब तक .. इसे लागू करने के अन्य तरीका है मैं इस

var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); 
context.Clients.User(CurrentUser.Usernm).reportProgress(recordCount,totalCount); 

लागू करने के लिए उपयोग करते हैं, लेकिन अब हम आधारित दावा नहीं कर रहे हैं कर सकते हैं प्रमाणीकरण इसलिए यदि यह वही उपयोगकर्ता नाम लॉग होता है तो यह एक समस्या होगी ..

उत्तर

5

हब के बाहर, स्पष्ट रूप से कोई कॉलर नहीं है क्योंकि सर्वर वह है जो शुरू करता है।

यदि आप अद्वितीय उपयोगकर्ता नामों के बारे में चिंतित हैं, तो आपको implement a custom IUserIdProvider की आवश्यकता होगी, या आपको किसी अन्य तरीके से manage connection ids per user की आवश्यकता होगी। फिर आप

context.Clients.Client(connectionId).reportProgress(); 

पर कॉल कर सकते हैं जो अद्वितीय होगा।

+0

हब प्रमाणीकरण के लिए उपयोगकर्ता पहचान मैपिंग करना मुझे सबसे अच्छा तरीका लगता है लेकिन हमने कस्टम इप्रिनिपलर को लागू किया। लिंक पर एक झांक लेना .. –

+0

मेरी समस्या का समाधान .. मेरे Iprincipal के साथ Yep IUserIdProvider मानचित्र कनेक्शन मैपिंग हल करता है –

संबंधित मुद्दे