SignalR重新连接客户端和两个不同的版本?

时间:2018-09-12 08:42:21

标签: asp.net angularjs typescript signalr

关于SignalR,我有一些疑问和问题。

第一个问题:

我已经按照Npmjs(v1.0.3)的要求下载了npm install @aspnet/signalr信号器。 但是,经过进一步检查,我的信号器文件不包含重新连接功能,如此处github:343所示。 实际上,似乎这是两个不同的存储库。为什么它们不同,两者似乎都是由Microsoft开发的?

这是两个存储库:https://github.com/SignalR/SignalRhttps://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);
    }
});

我还遵循以下资源来尝试实现重新连接功能:

任何帮助将不胜感激。

1 个答案:

答案 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

相关问题