SignalR连接协商失败。

3

我正在尝试在Angular应用程序中使用SignalR。我正在使用TypeScript客户端@aspnet/signalr

我在控制台中得到的信息是:

信息:将'/api/signalr?connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D'规范化为'http://server:port/api/signalr?connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D'。

调试:开始HubConnection。

调试:使用传输格式'Text'启动连接。

调试:发送协商请求: http://server:port/api/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22kanbanhub%22%7D%5D

错误:无法启动连接:TypeError: Cannot read property 'length' of undefined

错误似乎来自于HttpConnection中的if (!(_i < transports_1.length)) return [3 /*break*/, 9];这行代码。这可能与协商响应中不包含availableTransports数组有关。

{
    "Url":"/api/signalr",
    "ConnectionToken":"XXX",
    "ConnectionId":"XXX",
    "KeepAliveTimeout":20.0,
    "DisconnectTimeout":30.0,
    "ConnectionTimeout":110.0,
    "TryWebSockets":false,
    "ProtocolVersion":"1.2",
    "TransportConnectTimeout":5.0,
    "LongPollDelay":0.0
}

有任何想法吗?
1个回答

3

看起来问题在于我在客户端使用了ASP.NET Core SignalR,而在服务器端使用了ASP.NET SignalR,它们不兼容。

我应该使用signalr而不是@aspnet/signalr


该项目被搁置,直到我们升级到.NET Core。但是,如果您在客户端和服务器上使用兼容的库,它应该可以工作。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接