2014-09-28 156 views
0

我正嘗試連接到來自javascript客戶端的另一個域中的信號集線器。未能連接來自javascript客戶端的signalR集線器

我在頁面

`<script src="script/jquery-1.10.2.min.js"></script> 
<script src="script/jquery.mobile-1.4.3.min.js"></script> 
<script src="Scripts/jquery.signalR-2.1.2.min.js"></script> 
<script src="http://domain/SignalR/Hubs"></script> 

<script type="text/javascript"> 

    $(function() { 
     var myHub = $.connection.newHub; 

     // Start the connection 
     $.connection.hub.start(); 

     // Declare a function on the blog hub so the server can invoke it 
     myHub.client.BroadcastMessage= function (message) { 
      alert(message); 
     }; 
     myHub.server.SentInfo(" message"); 
}  

引用,但客戶端無法連接到集線器。

$.connection.hub.start(); 

失敗,並在控制檯,如果我嘗試調用myHub.server.SentInfo(" message"); 它給誤差

Error: SignalR: Connection must be started before data can be sent. Call .start() before .send() 

我失去了什麼。

在此先感謝

回答

0

在JavaScript中,你需要命名集線器變量(var myHub = $.connection.newHub;)之前有$.connection.hub.url = 'yourURL';。取決於您如何配置Startup.cs文件和CORS,您可能需要稍微使用URL。

+0

當我調用$ .connection.hub.start()。done(){}不起作用並且在控制檯$ .connection.hub中添加了url $ .connection.hub.url .state始終爲0. – user3386468 2014-09-30 16:13:36

+1

如何配置Owin Startup文件? – dkiefer 2014-09-30 16:25:30

+0

不能訪問服務器代碼。 jst需要照顧客戶端。這對客戶端來說是否合適? – user3386468 2014-09-30 17:55:21

0

signalR連接不會立即打開。您需要等到開放連接許諾完成。嘗試以下代碼

$.connection.hub.start().done(function() { 
     // Declare a function on the blog hub so the server can invoke it 
     myHub.client.BroadcastMessage= function (message) { 
      alert(message); 
     }; 

     myHub.server.SentInfo(" message"); 
    }); 
相關問題