Javascript $.connection.hub.id在done函数中未定义
我们正在使用信号器1.2.1。以下是我的启动功能:Javascript $.connection.hub.id在done函数中未定义,javascript,asp.net-mvc-3,signalr,Javascript,Asp.net Mvc 3,Signalr,我们正在使用信号器1.2.1。以下是我的启动功能: $.connection.hub.start(self._SignalROptions) .done(function () { self._connecting = false; log("Connected to dashboard hub successfully. (id=" + $.connection.hub.id + ")");
$.connection.hub.start(self._SignalROptions)
.done(function () {
self._connecting = false;
log("Connected to dashboard hub successfully. (id=" + $.connection.hub.id + ")");
self._ensureExistingClientFunctionsAreRegistered();
if (aDoneFunction) {
aDoneFunction();
}
})
.fail(function () {
log("Connection to dashboard hub failed!");
});
有时,我们会收到控制台日志,这似乎是一个计时问题:
已成功连接到仪表板中心。id=未定义
然后,在集线器上调用的任何未来函数都会抛出异常
必须先启动连接,然后才能发送数据。打电话。开始之前。发送
David Foll在下面的文章中说,$connection.hub.id不能在done函数中未定义,但它确实发生了:
我做错了什么?如果这在未来的版本中得到修复,我们将很快升级,但有人能提供证据吗?提前感谢。确保在客户端上至少配置了一个集线器方法。接下来,请尝试删除您的self.\u SignalROptions以确保此处没有任何内容,并允许它使用默认传输等。我将删除您的done方法中除log语句以外的所有代码,我将切换到警报以排除任何解析问题 启用日志记录并查看控制台,以确保没有引发错误
$.connection.hub.logging = true
最后,在服务器上放置一个断点,查看OnConnected方法是否在hub中被命中。如果您仍然没有获得连接id,我会在GitHub上为信号员团队提交一个问题
你应该得到一个id回来,如果你已经删除了你所有的自定义代码,这里没有什么别的事情要做。您的服务器代码也可能有问题