【问题标题】:SignalR connection negotiation failsSignalR 连接协商失败
【发布时间】:2018-07-20 19:48:31
【问题描述】:

我正在尝试在 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。

调试:以传输格式“文本”开始连接。

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

错误:无法启动连接:TypeError:无法读取未定义的属性“长度”

错误似乎来自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
}

知道为什么吗?

【问题讨论】:

    标签: angular typescript signalr asp.net-core-signalr


    【解决方案1】:

    问题似乎是我在客户端使用 ASP.NET Core SignalR 和在服务器端使用 ASP.NET SignalR,这是不兼容的。

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

    【讨论】:

    • 该项目被搁置,直到我们升级到 .net 核心,但如果您在客户端和服务器上使用兼容的库,它应该可以工作。
    猜你喜欢
    • 2016-06-05
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2018-05-29
    相关资源
    最近更新 更多