2014-09-28 244 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"); 
    }); 
相关问题