現(xiàn)在想用workerman來(lái)做服務(wù)端,但是workerman好像進(jìn)程數(shù)量是配置固定的
想和erlang一樣,一個(gè)玩家一個(gè)進(jìn)程
如果是Gateway::sendToGroup 去當(dāng)作一個(gè)廣播功能。如果有3000個(gè)玩家在線,foreach ($group_array as $group) 這樣的模式 會(huì)不會(huì)第一個(gè)玩家和第二個(gè)玩家 客戶端,收到消息的時(shí)候,時(shí)間相差超過(guò)50ms?;蛘吒嗤婕以诰€ 這個(gè)延遲會(huì)不會(huì)更大
這是walkor大佬的回答
http://wtbis.cn/q/5560
http://wtbis.cn/q/778
2萬(wàn)在線服務(wù)端可以保證同時(shí)發(fā)出去,但是客戶端是否同時(shí)收到看具體網(wǎng)絡(luò)環(huán)境。如果客戶端網(wǎng)絡(luò)不好或者服務(wù)器帶寬不夠可能會(huì)延遲。
看帶寬,結(jié)合消息體積和客戶端數(shù)量自行評(píng)估。
雖然文檔描述是同時(shí)發(fā)送消息,但是網(wǎng)卡發(fā)送數(shù)據(jù)包微觀上還是串行的,不過(guò)只要帶寬大.發(fā)送得夠快也可以認(rèn)為是并行,即“同時(shí)”。
再說(shuō)PHP GC一次都得500ms了,想要保證50ms還是建議換語(yǔ)言,用C++ Rust,最次也得.NET C#這種