2025-11-20 06:50:49
WebSocket每句话最多能发1MB,但实际应用中通常设置更小,比如4KB。并发数太多的话,服务器会像被压垮的自行车链条一样容易断掉,同时每秒收发量也会像沙子漏一样慢慢变小。心跳包每分钟要发一次,1000个同时在线用户就是每天要发掉2.59亿个心跳包。延迟也会像煮面一样越煮越久,1000人同时说话时,一个人收到的消息可能比第一个人的慢了整整15秒。
因为WebSocket的帧大小限制,单次发送不能超过1MB,但实际应用中为了兼容性和性能优化,通常把文本帧控制在4KB以内。比如Nginx服务器配置1000个并发连接时,实测每秒能处理50MB数据,相当于每秒要拆解2500个4KB的数据包。心跳包机制更会吃掉额外资源,1000用户同时在线时,每天要发送2.59亿个心跳包,相当于每个用户每天要发260次00心跳。服务器处理能力像水桶装水,如果并发数超过500个,每秒处理量就会从100MB暴跌到30MB。实测数据显示,当并发数超过800时,延迟会从50ms飙到2.3秒,就像高峰期堵车一样,越多人同时开车,堵车时间就越长。
本题链接: