SignalR 连接协商失败

SignalR connection negotiation fails

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

我在控制台得到的是

Information: Normalizing '/api/signalr?connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D' to 'http://server:port/api/signalr?connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D'.

Debug: Starting HubConnection.

Debug: Starting connection with transfer format 'Text'.

Debug: Sending negotiation request: http://server:port/api/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22kanbanhub%22%7D%5D

Error: Failed to start the connection: 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
}

知道为什么吗?

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

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