[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Websocket как отсылать сообщения всем
arbuzmaster
Подскажите пожалуйста, что нужно переделать в коде, что бы сообщения от сервера приходили всем клиентам?
Сам код:

public static function getConnection()
{
$paramsPath=ROOT.'/config/websocket_params.php';
$params= include ($paramsPath);
$socket = stream_socket_server("tcp://".$params['host'].":".$params['port'], $errno, $errstr);

if (!$socket)
{
die("$errstr ($errno)\n");
}

$connects = array();
while (true)
{
//формируем массив прослушиваемых сокетов:
$read = $connects;
$read []= $socket;
$write = $except = null;

if (!stream_select($read, $write, $except, null))
{//ожидаем сокеты доступные для чтения (без таймаута)
break;
}

if (in_array($socket, $read))
{//есть новое соединение
//принимаем новое соединение и производим рукопожатие:

if (($connect = stream_socket_accept($socket, -1)) && $info = self::handshake($connect))
{
$connects[] = $connect;//добавляем его в список необходимых для обработки
self::onOpen($connect, $info);//вызываем пользовательский сценарий
}
unset($read[ array_search($socket, $read) ]);
}

foreach($read as $connect)
{//обрабатываем все соединения
$data = fread($connect, 100000);

if (!$data)
{ //соединение было закрыто
fclose($connect);
unset($connects[ array_search($connect, $connects) ]);
self::onClose($connect);//вызываем пользовательский сценарий
continue;
}

self::onMessage($connect, $data);//вызываем пользовательский сценарий
}
}


fclose($socket);




}
public static function sendMessage($connect, $data)
{
echo self::decode($data)['payload'] . "\n";
//fwrite($connect, self::encode('Получил'));
if(self::decode($data)['payload']=="getSwitches")
{
$response=Switches::getAjaxAllSwitches();
fwrite($connect, self::encode($response));
}
}

код работает, но отсылает ответ, только тому клиенту который прислал сообщение.

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.