关于SignalR,我有一些疑问和问题。
第一个问题:
我已经按照Npmjs(v1.0.3)的要求下载了npm install @aspnet/signalr
信号器。
但是,经过进一步检查,我的信号器文件不包含重新连接功能,如此处github:343所示。
实际上,似乎这是两个不同的存储库。为什么它们不同,两者似乎都是由Microsoft开发的?
这是两个存储库:https://github.com/SignalR/SignalR 和https://github.com/aspnet/SignalR
第二个问题:
我已尝试在我的应用程序中实现重新连接功能,但我只能使用有限的功能。这是我目前的方法(由于我在第一个存储库中没有重新连接功能),下面的代码在断开连接时产生以下输出:
signalr.min.js:1353 Error: Connection disconnected with error 'Error: Server timeout elapsed without receiving a message from the server.'.
Uncaught TypeError: this.connect is not a function
at HubConnection.eval
trying to connect...
Uncaught TypeError: this.connect is not a function
at HubConnection.eval
trying to connect...
etc... etc...
代码:
this.connection.onclose(function (error) {
if (!this.isConnected) {
this.isConnected = false;
appService.emit("disconnected", true);
var intervalFunc = setInterval(function () {
console.log("trying to connect...");
this.connect();
if (this.isConnected) {
this.appService.emit("connected", true);
this.isConnected = true;
clearInterval(intervalFunc);
console.log("connection established");
}
}.bind(this), 5000);
}
});
我还遵循以下资源来尝试实现重新连接功能:
任何帮助将不胜感激。
答案 0 :(得分:0)
有一个.NET版本和.NET CORE版本。在每个github链接的顶部,它显示:.NET令人难以置信的简单实时网络(第一个github)和ASP.NET Core令人难以置信的简单实时网络(第二个GitHub)。
您的第二个问题可能是要确定是否混合使用哪种SignalR产品(.NET或.NET CORE)和每种产品的客户端。它们不交叉兼容,因此您不能将.NET JS客户端与.NET Core客户端一起使用。
我会重新检查您已实现的内容,然后从那里开始。
如果检查问题下的.NET Core存储库并搜索重新连接,则似乎重新连接不再是.NET Core中的功能。参见issue 1611。