我正在使用 Faye,它使用 websockets。
我的服务器发送数据包的速率非常一致。它的平均偏差小于一毫秒。如果我在同一台机器上运行客户端,客户端的平均偏差也非常接近。但是,当我在另一台机器上运行客户端时,当我提高帧速率时会发生一些不好的事情。
当我以每秒 5 帧的速度发射时,对方以大约正确的速率接收它们。当我将其增加到 10 fps 时,客户端将在 200 毫秒内接收一帧,下一帧仅在 1 毫秒后接收,就像每个其他数据包都与前一个数据包捆绑在一起一样。当我将其提高到 20fps 时,大多数数据包都以这种方式捆绑在一起:我将在 300 毫秒内获得一个,然后在 1 毫秒内获得四个左右。就好像我能得到的只是 5fps,而要求更多只是以 5fps 的速度打包发送。
是否可以防止这种捆绑并以一致的速率获取我的数据包?超过 5fps 是不是太期待了?这是 Faye 或 Websockets 或 TCP 的一般限制吗?