当前位置: 首页 > 知识库问答 >
问题:

空闲WebSockets的开销

宗意蕴
2023-03-14

值得注意的是,服务器是使用ws的NodeJS,客户机使用QTWebSockets。

谢了!

共有1个答案

越季萌
2023-03-14

一旦建立(意味着三次握手完成),原始TCP连接将使用零带宽,除非:

  • 发送或接收数据
  • 显式启用TCP KeepAlive

服务器或客户端可以启用TCP KeepAlives。keepalive是一个设置ACK标志的零长度数据包,只有54个字节在线路上发送,另有54个字节用于响应。默认情况下,TCP keepalives每两小时发送一次。换句话说,完全可以忽略不计。

然而...

Keepalives很重要,因为中间设备(即NAT路由器)会丢弃非活动的TCP连接。根据服务器和客户机之间的网络,这意味着如果您没有任何keepalives,客户机将失去它们的连接(可能不知道,这很糟糕),并将不得不重新Eastablish WebSocket会话。就带宽而言,这可能比启用正常的KeepAlives要昂贵得多。

每5分钟执行一次ping/pong,每小时花费1.5-4.4kB(每个客户端)。

 类似资料:
  • 文件系统负责将空闲块分配给文件,因此它必须跟踪磁盘中存在的所有空闲块。 主要有两种方法,使用它们管理磁盘中的空闲块。 1. 位向量 在这种方法中,空闲空间列表被实现为位图向量。 它包含每个位代表每个块的位数。 如果该块为空,则该位为1,否则为0。最初,所有块都是空的,因此位图向量中的每个位都包含1。 随着空间分配的进行,文件系统开始为文件分配块并将各个位设置为。 2. 链接列表 这是空闲空间管理的

  • 我在OS X 10.9.5上使用MySQL Workbench 6.3来管理多个云数据库(托管在Rackspace上),我遇到了以下问题: 闲置5分钟后,会出现以下问题: 我无法运行任何查询(错误 2013:查询期间失去与 MySQL 服务器的连接) 尝试浏览数据库上的表时,我收到诸如“无法获取表”、“无法获取视图”等消息 刷新左侧面板时,出现“错误代码:2006 MySQL服务器已消失” 所以基

  • Heroku WORKER Dyno(在python环境中运行)在30分钟后进入睡眠状态。工作人员执行芹菜期任务计划,向用户发送电子邮件。 下面是显示实际行为的日志: 根据研究,我的理解是dyno进入睡眠状态,但是dyno不会睡眠。https://devcenter.heroku.com/articles/free-dyno-hours: 如果一个应用程序有一个免费的网络dyno,并且dyno在3

  • 问题内容: 我看到许多连接处于打开状态,并且很长一段时间(例如5分钟)保持空闲状态。 有什么解决方案可以在不重新启动mysql服务的情况下从服务器终止/关闭它? 我正在维护旧的PHP系统,无法关闭为执行查询而建立的连接。 我应该将my.cnf文件中的超时值减少为默认的8小时吗? 问题答案: 手动清理: 您可以杀死该进程ID。 但: php应用程序可能会报告错误(或网络服务器,请检查错误日志) 不要

  • 在最新的版本(1.0.0-pre1)中,gRPC 引入了 Channel 的空闲模式(idle mode)。 工作方式(初步) 在 InUseStateAggregator 中,控制 Channel (准备)进入空闲模式和退出空闲模式: final InUseStateAggregator<Object> inUseStateAggregator = new InUseStateAggregato

  • 我有一个多线程应用程序,它将传入的消息发布到rabbitmq交换。使用rabbitmq java客户端,我在应用程序启动时创建一个rabbitmq连接,并在所有线程之间共享它。每个线程都创建一个新通道(threadlocal),这样通道就不会像rabbitmq文档所建议的那样在多个线程之间共享。我正在使用netty,我看到相同数量的rabbitmq通道被创建为netty通道管道线程。到目前为止还不

  • 我想对一个必须运行的程序使用numpy,并且我想在空闲的IDE中运行它。我已经从网上安装了numpy二进制文件,但是当我尝试运行“import numpy ”,然后在我的脚本中运行一些numpy命令时,python shell返回一个错误,说 我尝试过使用pip来安装麻木,但是当我在bash外壳中运行时,它说 我已经下载了Anaconda,我可以在其中使用numpy发行版,但是我真的想在空闲时使用

  • 我有两个WebServices。一个webservice调用另一个webservice。这些web服务托管在两个不同的AWS实例上。如果被调用的webservice空闲了一段时间,我会得到这个异常- com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功接收的最后一个数据包是在49,381,933毫秒之前。最后一个成功发送到服务