我做了一個(gè)小游戲,客戶端向服務(wù)器發(fā)送 '{"type":"update","boatId":"20001","y":"10"}' json數(shù)據(jù),服務(wù)端把y 值存到數(shù)組$POSITION中,如果有新的用戶進(jìn)入,會(huì)先發(fā)送 '{"type":"init"}',服務(wù)端判斷type為init則吧數(shù)組中的數(shù)據(jù)發(fā)送到客戶端。那么問(wèn)題是:每次有新的客戶端打開(kāi),或者刷新頁(yè)面,客戶端收到的數(shù)組數(shù)據(jù)總是會(huì)變。打印$POSITION發(fā)現(xiàn)值每次都不一定固定。怎么回事兒?
下面是我的代碼
$POSITION = array('boat1' =>0,'boat2' =>0,'boat3' =>0);
class Event
{
public static function onMessage($client_id, $message)
{
global $POSITION;
// $message = '{"type":"update","boatId":"20001","y":"1"}'
$message_data = json_decode($message, true);
if(!$message_data)
{
return ;
}
switch($message_data)
{
case 'init':
Gateway::sendToAll(json_encode(array(
'type' => 'init',
'boat1' => $POSITION,
'boat2' => $POSITION,
'boat3' => $POSITION,
)));
return;
//更新數(shù)據(jù)
case 'update':
$boatId = $message_data;
$y = 10;
if($boatId != null){
switch($boatId){
case '20001' : $POSITION += $y; break;
case '20002' : $POSITION += $y; break;
case '20003' : $POSITION += $y; break;
}
}
Gateway::sendToAll($message);
return;
}
}
}