【问题标题】:Transport timeout too short causes Angular Socket.IO web socket to close before connection established传输超时太短导致 Angular Socket.IO Web 套接字在连接建立之前关闭
【发布时间】:2019-07-09 14:31:37
【问题描述】:

我不断收到警告 Websocket 连接到 'ws://localhost:12345/sockjs-node/123/124gi9a/websocket' 失败:WebSocket 在连接建立之前关闭 每次我使用 VS 运行 Angular 应用程序时都在控制台中。

查看调用堆栈;似乎是因为几次尝试连接失败后传输超时。然后它关闭传输。

编辑:我发现通过使用第二行代码here 增加传输超时修复了警告。但是我不知道为什么这个拉取请求没有被批准。我仍然不知道延长超时的长期解决方案是什么。

【问题讨论】:

  • 您能否展示一下您是如何实施此修复的?该拉取请求似乎适用于 sockjs-client 的 v1.1.5。我正在运行 v 1.4.0 并且仍然遇到同样的问题。
  • 请在下方查看我的新答案

标签: angular websocket socket.io


【解决方案1】:

详细说明我做了什么:

node_modules\sockjs-client\dist\sockjs.js 中有一行

var timeoutMs = (this._rto * Transport.roundTrips) || 5000;

我刚刚把它注释掉了。

下面应该是这样的一行:

// calculate timeout based on RTO and round trips. Default to 5s. Min timeout is null, can be overridden
var timeoutMs = (
    (this._rto > this._transportMinTimeout ? this._rto : this._transportMinTimeout) * Transport.roundTrips
) || 5000;

【讨论】:

  • 而且每次 sock-client 组件更新到新版本...?
猜你喜欢
  • 2015-01-08
  • 2017-12-23
  • 1970-01-01
  • 2018-06-13
  • 2021-05-29
  • 2018-02-05
  • 1970-01-01
  • 2018-06-24
相关资源
最近更新 更多