2013-04-23 8 views
6

के बाहर से एक और परियोजना में एक हब से अधिक प्रसारण मैं दो मेरी समाधान में परियोजनाओं:SignalR - एक हब

Project 1: "SignalRChat" (MVC) - Works fine
Project 2: "DatabaseWatcherService" Windows Service - Works fine

मैं अपने Windows सेवा और इसे से मेरी SignalRChat हब के लिए कॉल करने के लिए कोशिश कर रहा हूँ काम नहीं कर रहा है।

यह वह जगह है जहां मैं अपने विंडोज़ सेवा (https://github.com/SignalR/SignalR/wiki/Hubs#broadcasting-over-a-hub-from-outside-of-a-hub) से मेरी हब फोन:

void PerformTimerOperation(object sender, EventArgs e) 
    { 
     eventLog1.WriteEntry("Timer ticked..."); 

     var message = "test"; 

     var context = GlobalHost.ConnectionManager.GetHubContext<SignalRChat.ChatHub>(); 
     context.Clients.All.addNewMessageToPage(message); 
    } 

मैं निम्न त्रुटि जब कनेक्ट करने का प्रयास हो रही है:

Message=The remote server returned an error: (500) Internal Server Error.

मैं कोशिश कर रहा हूँ

var connection = new HubConnection("http://localhost:2129");

पोर्ट 2129 के माध्यम से कनेक्ट करें मेरी एमवीसी परियोजना चल रही है।

उत्तर

15

यह केवल तब तक काम करेगा, जहां तक ​​मुझे पता है, जब आप वेब एप्लिकेशन के भीतर से हब को कॉल कर रहे हैं।

वेब एप्लिकेशन के बाहर से हब के साथ बातचीत करने के लिए, उदा। एक Windows सेवा से, आप अपने प्रोजेक्ट के लिए निम्न NuGet पैकेज जोड़ें SignalR Client Hubs documentation

  1. पर एक नज़र लेने के लिए की आवश्यकता होगी: Microsoft.AspNet.SignalR.Client

  2. अपने पृष्ठ के शीर्ष करने के लिए निम्न कथन जोड़ें: using Microsoft.AspNet.SignalR.Client;

  3. आपको हब से कनेक्शन बनाना होगा, और फिर कनेक्शन शुरू करना होगा।


var connection = new HubConnection("http://mysite/"); 
IHubProxy myHub = connection.CreateHubProxy("MyHub"); 

connection.Start().Wait(); // not sure if you need this if you are simply posting to the hub 

myHub.Invoke("addNewMessageToPage", "Hello World"); 

अपने हब में आप तो और जो हैलो दुनिया स्ट्रिंग स्वीकार करता AddNewMessageToPage के लिए एक विधि है की आवश्यकता होगी यहां से फोन Clients.All.addNewMessageTopage(message)

+0

मैं अपने side..incorrect पर लिखने में कोई त्रुटि थी हब नाम "MyHub"। एक बार जब मैंने इसे अपने वास्तविक हब नाम में बदल दिया तो यह ठीक काम करता था। धन्यवाद। – Mithrilhall

+0

हाँ मैंने अभी सिग्नलआर दस्तावेज़ों से कोड लिया है। –

+0

यह वही था जो मैं खोज रहा था, धन्यवाद! :-) – xan

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