項(xiàng)目中需要添加很多機(jī)器人,執(zhí)行游戲任務(wù),想起幾十個(gè)或上百個(gè)client,哪位大俠幫我看看 這樣的寫法會(huì)不會(huì)出現(xiàn)問題。
for($i=0;$i<100;$i++){
$client = new AsyncTcpConnection("xxx.xxx.xxx:8282");
$client->onConnect = function($client) {};
$client->onMessage = function($client, $message) {};
$client->connect();
}
寫法沒有問題,不過要注意發(fā)起連接的一方即client方所在的機(jī)器能夠支持的最大tcp連接數(shù)是有限的,所以執(zhí)行完任務(wù)后能釋放tcp連接的盡量釋放。
好的謝謝你的回答,我這一百個(gè)鏈接需要長(zhǎng)時(shí)間與服務(wù)器鏈接,很長(zhǎng)時(shí)間不能去斷開即釋放,應(yīng)該是沒有問題的吧。因?yàn)闀簳r(shí)平臺(tái)需要這么多的機(jī)器人在線并且有不同的操作。
只要客戶端所在的機(jī)器內(nèi)存能夠支撐你預(yù)期的TCP連接數(shù)就好,當(dāng)然這個(gè)連接數(shù)除了內(nèi)存影響外,還受限于機(jī)器TCP有關(guān)內(nèi)核參數(shù)的配置,一般單機(jī)支撐上萬(wàn)個(gè)也不是問題,現(xiàn)在僅100個(gè)TCP長(zhǎng)連接不用擔(dān)心。