【发布时间】:2016-02-08 12:06:09
【问题描述】:
我正在开发一个使用 Ratchet 0.3.3、Laravel 5 和 PHP 5.5.9 构建的实时多人游戏,服务器操作系统是 Ubuntu。服务器在每个周期通过 WebSocket(数百个用户)向每个用户发送大约 500 个字节的数据。 看起来 WebSocket 正在缓冲请求并一次发送 5 到 6 个请求(每个请求 500 个字节)。 我们有 30 毫秒的周期。有没有办法手动设置 WebSocket 缓冲区设置,以便可以毫无延迟地发送我的请求?
【问题讨论】:
-
我不太清楚你的问题。您的 websocket 服务器会每 30 毫秒向连接的客户端发送消息吗?但是现在您的客户一次会收到 5 或 6 条消息?你是什么意思“在每个周期发送每个请求”?
-
是的,我的 websocket 服务器每 30 毫秒向连接的客户端发送消息。问题是这些消息以某种方式排队,客户端一次收到 5 或 6 条消息。每当服务器生成每条消息时,我都需要发送它。
-
听起来你正在成为 Nagle 算法的牺牲品。我建议设置
TCP_NODELAY标志,但您使用的是 Ratchet...
标签: php laravel azure websocket ratchet