我正在尝试连接到来自javascript客户端的另一个域中的信号器中心。
我在页面中的引用
`<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 :(得分:0)
在您的JavaScript中,在命名Hub变量($.connection.hub.url = 'yourURL';
)之前,您需要var myHub = $.connection.newHub;
。您可能需要稍微使用URL,具体取决于您如何配置Startup.cs文件和CORS。
答案 1 :(得分:0)
信号R连接无法立即打开。您需要等到完成开放连接承诺。请尝试以下代码
$.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");
});