websocket每秒创建新连接

Posted

技术标签:

【中文标题】websocket每秒创建新连接【英文标题】:websocket creating new connection every second 【发布时间】:2018-06-22 21:15:53 【问题描述】:

我有一个 Angular 5 应用程序,它使用 socket.io-client 连接到托管在谷歌云平台上的 websocket 服务器。但是,我没有打开 1 个连接,而是在浏览器中看到正在创建多个连接,并且每秒打开一个新连接。我在连接打开的代码中添加了一个调试断点,并且仅在页面加载时触发一次。不知道为什么即使初始连接使用 101 代码成功,它仍然继续请求新连接。

  private BASE_URL = 'wss://X.XXX.XX.XXX/';
  private socket: any;

  connectSocket(userId: string) 
    this.socket = io(this.BASE_URL,  query: `userId=$userId`, transports: ['websocket'] );
  

【问题讨论】:

你的网络服务器是集群的,也就是说,它是不是由多个进程组成的? @angrylemon 不,它是一个实例。 可以显示连接码吗? @MarcosCasagrande 更新了帖子以显示代码 我能想到的唯一原因是服务器正在断开连接,而 socket.io 有一个重新连接选项。 【参考方案1】:

我需要更多信息才能确定地回答这个问题,但我可以对这里发生的事情做出有根据的猜测

我认为连接代码可能被放置在一段代码中,这些代码会一遍又一遍地执行,导致它显示出这种行为。

此外,如果这确实是服务器问题,您可以轻松查看服务器实际发回的内容,导致套接字关闭。在 Chrome 中,单击“网络”选项卡中请求的“名称”,然后单击“框架”选项卡 - 这应该会准确显示客户端和服务器之间传输的信息类型。

【讨论】:

以上是关于websocket每秒创建新连接的主要内容,如果未能解决你的问题,请参考以下文章

接受 websocket 使用 tcp .net 很慢?

处理多个 websocket 连接

WebSocket如何保持连接

如何在 AngularJS 中实现 websockets?

当 websocket 客户端太慢时 websocket 将如何工作?

小程序 websocket