是否需要压缩Websocket短消息?

是否需要压缩Websocket短消息?,websocket,latency,Websocket,Latency,我正在做一个使用Websocket进行交流的游戏项目。后端是一个Spring引导应用程序。现在,示例消息如下所示: {“type”:“EnemyHpChange”,“id”:0,“value”:-5} 如您所见,消息可以很容易地以二进制形式缩短为2个字节,可能使用6位作为消息类型,2位作为id,等等 因为这是一个游戏,所以我对减少延迟很感兴趣,但是像这样压缩消息要快多少呢?有两件事需要考虑: 就理论而言,网络延迟可能不会受到影响,而避免使用JSON解析器可能会对感知到的延迟产生预期效果 只有测试

我正在做一个使用Websocket进行交流的游戏项目。后端是一个Spring引导应用程序。现在,示例消息如下所示:

{“type”:“EnemyHpChange”,“id”:0,“value”:-5}

如您所见,消息可以很容易地以二进制形式缩短为2个字节,可能使用6位作为消息类型,2位作为id,等等


因为这是一个游戏,所以我对减少延迟很感兴趣,但是像这样压缩消息要快多少呢?

有两件事需要考虑:

  • 就理论而言,网络延迟可能不会受到影响,而避免使用JSON解析器可能会对感知到的延迟产生预期效果

  • 只有测试才能正确观察性能变化。理论是好的,但有复杂的优化在幕后,他们产生了意想不到的影响

  • 网络延迟 该理论背后的原因是TCP/IP数据包的MTU。这两条消息很可能都适合单个数据包,因此网络层的行为可能相同

    另一方面,如果您有许多消息,那么您可以在同一个数据包中容纳更多的消息,从而优化网络流量(这仍然值得怀疑,因为这取决于消息频率)

    我不确定,但据我记忆所及,野外的MTU值通常在500字节左右或更少

    分析器延迟 另一方面,一旦客户机获得数据,二进制数据通常比JSON更快、更容易解析

    这些都是非常短的消息,但内存消耗和解析速度很可能会影响到客户端的感知延迟


    请注意,感知延迟不会改变网络延迟,但会改变客户端的响应能力以及事件转化为感知状态变化的速度。

    我将以任何方式压缩它,但我仍然想知道它有什么不同。