现在想用workerman来做服务端,但是workerman好像进程数量是配置固定的
想和erlang一样,一个玩家一个进程
如果是Gateway::sendToGroup 去当作一个广播功能。如果有3000个玩家在线,foreach ($group_array as $group) 这样的模式 会不会第一个玩家和第二个玩家 客户端,收到消息的时候,时间相差超过50ms。或者更多玩家在线 这个延迟会不会更大
这是walkor大佬的回答
https://www.workerman.net/q/5560
https://www.workerman.net/q/778
2万在线服务端可以保证同时发出去,但是客户端是否同时收到看具体网络环境。如果客户端网络不好或者服务器带宽不够可能会延迟。
看带宽,结合消息体积和客户端数量自行评估。
虽然文档描述是同时发送消息,但是网卡发送数据包微观上还是串行的,不过只要带宽大.发送得够快也可以认为是并行,即“同时”。
再说PHP GC一次都得500ms了,想要保证50ms还是建议换语言,用C++ Rust,最次也得.NET C#这种
难得看到有用Erlang的,老实说,Erlang/OTP的actor模型很适合游戏这种场景