SignalR - 未处理的拒绝(错误):WebSocket 关闭,状态代码:1000 ()
SignalR - Unhandled Rejection (Error): WebSocket closed with status code: 1000 ()
一个 asp.net 核心应用程序,在客户端使用 react+redux,使用 signalR。
在客户端出现以下错误:
Unhandled Rejection (Error): WebSocket closed with status code: 1000 ().
好像是“normal closure”,但是没有关闭连接的代码。
应用程序在多个视口中以每个视口 60 FPS 的速度发送小图像。这几乎完全利用了 JS 线程,我认为它可能会阻止 signalR 保持活动状态。
尝试将服务器中 signalR 的超时设置为其最大值,但这并没有阻止问题再次发生。
是什么导致 signalR 套接字在不调用关闭且没有错误消息的情况下关闭?
我猜浏览器或服务器可能出于自我保护或达到设定限制而关闭。
最有可能:The default maximum size of a hub message (MaximumReceiveMessageSize
) is 32 KB, and a image could easily surpass this。您可以打开 EnableDetailedErrors
以查看是否有更多信息。
如果浏览器不能足够快地发送,它就需要缓冲,而这个缓冲不能无限增长。您还可以 运行 基于占用 JS 线程(可能使用 worker?)或使用过多网络 I/O 进行某种反恶意软件保护。服务器也可能因类似原因关闭。
至于为什么错误信息含糊不清:The browser literally can't give you too much feedback about this - see the warning text before 9.3.4. 编辑:这是错误的,仅适用于关闭代码 1006.
为了解决这个问题,我打开了logs as Jesper 。
问题是我正在取消传递给 SendAsync 方法的 CancellationToken。由于某些奇怪的原因,取消发送会关闭套接字(我希望它只会取消特定消息,而不是关闭连接)。
一个 asp.net 核心应用程序,在客户端使用 react+redux,使用 signalR。 在客户端出现以下错误:
Unhandled Rejection (Error): WebSocket closed with status code: 1000 ().
好像是“normal closure”,但是没有关闭连接的代码。
应用程序在多个视口中以每个视口 60 FPS 的速度发送小图像。这几乎完全利用了 JS 线程,我认为它可能会阻止 signalR 保持活动状态。
尝试将服务器中 signalR 的超时设置为其最大值,但这并没有阻止问题再次发生。
是什么导致 signalR 套接字在不调用关闭且没有错误消息的情况下关闭?
我猜浏览器或服务器可能出于自我保护或达到设定限制而关闭。
最有可能:The default maximum size of a hub message (
MaximumReceiveMessageSize
) is 32 KB, and a image could easily surpass this。您可以打开EnableDetailedErrors
以查看是否有更多信息。如果浏览器不能足够快地发送,它就需要缓冲,而这个缓冲不能无限增长。您还可以 运行 基于占用 JS 线程(可能使用 worker?)或使用过多网络 I/O 进行某种反恶意软件保护。服务器也可能因类似原因关闭。
至于为什么错误信息含糊不清:The browser literally can't give you too much feedback about this - see the warning text before 9.3.4. 编辑:这是错误的,仅适用于关闭代码 1006.
为了解决这个问题,我打开了logs as Jesper