2016-03-02 101 views
1

我想建立一個signalR系統。signalr - 與不同的客戶端

我有示例代碼工作,使用兩個瀏覽器和相同的集線器。消息被髮送和接收。

現在,當我創建了一個不同的頁面,並嘗試將消息發送到集線器時,它似乎有點工作,這意味着它不會炸燬,但沒有任何內容會傳輸到其他客戶端。

我以爲我是從所有的客戶端訪問同一個消息中心,但也許我錯過了一些東西。

是否有可能將不同的網站連接到同一個消息中心?

開始編輯

按照要求....這裏是我用我的第二個客戶端的代碼...

var connection = $.hubConnection('http://xxxxxxxxx.azurewebsites.net/'); 
    var contosoChatHubProxy = connection.createHubProxy('MessagePump'); 
// contosoChatHubProxy.on('Send', function (name, message) {console.log(name + ' ' + message);}); 


    $.connection.hub.start() 
.done(function() { 
    console.log('Now connected, connection ID=' + $.connection.hub.id); // returns an ID 
    //  $.connection.hub.send('testing', 'this is a test from the client'); 
    //  contosoChatHubProxy.send("testing"); 
    //  contosoChatHubProxy.invoke('testing', 'this is a test for the client 1'); 
    //  contosoChatHubProxy.invoke('say', 'this is a test for the client 2'); 
    //  contosoChatHubProxy.invoke('Send', 'This is a test for client 3'); 
    //  $.connection.hub.send('testing', 'this is a test from the client 4'); 
    contosoChatHubProxy.invoke('messagePump', 'user', 'this is a test message for 5'); 
}) 
.fail(function(){ console.log('Could not Connect!'); }); 

這是我的螢火我看到

enter image description here

從我能做的代碼,代理似乎是本地加載,甚至沒有看到遠程系統集線器...

僅連接到遠程系統集線器的我的控制檯應用程序能夠發送和接收消息。

順便說一句 - 我已經試過上可以小寫(MessagePump,messagePump) 但它並沒有改變結果。

+0

你應該爲了得到援助 – drneel

+0

沒錯添加相關代碼,你需要證明你的工作,不然就很難說了什麼問題是:-)我猜你會需要重寫Hub實例的OnConnected方法,以便將連接的客戶端放入適當的組中,然後確保將消息發送到正確的組。你的用例很正常。 – keithl8041

回答

0
var connection = $.hubConnection('http://xxxxxxxxx.azurewebsites.net/'); 

您正在嘗試連接其他網站。這http://xxxxxxxxx.azurewebsites.net/應該讓跨域請求。否則你不能連接。如果你能夠http://xxxxxxxxx.azurewebsites.net/,你應該配置signalr像:

public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      // Branch the pipeline here for requests that start with "/signalr" 
      app.Map("/signalr", map => 
      { 
       // Setup the CORS middleware to run before SignalR. 
       // By default this will allow all origins. You can 
       // configure the set of origins and/or http verbs by 
       // providing a cors options with a different policy. 
       map.UseCors(CorsOptions.AllowAll); 
       var hubConfiguration = new HubConfiguration 
       { 
        // You can enable JSONP by uncommenting line below. 
        // JSONP requests are insecure but some older browsers (and some 
        // versions of IE) require JSONP to work cross domain 
        // EnableJSONP = true 
       }; 
       // Run the SignalR pipeline. We're not using MapSignalR 
       // since this branch already runs under the "/signalr" 
       // path. 
       map.RunSignalR(hubConfiguration); 
      }); 
     } 
    }