Здравствуйте. Есть два клиента, подключенных по WebSockets к серверу, если я на одном из них обновлю страницу, скрипт словит какой-то неизвестный символ, при расшифровке ничего не видно в терминале, похоже на то, что это пробел. Можете, пожалуйста, подсказать, что это может быть?
UPD: В самом фрейме данных видно, что приходит пустое сообщение.
<?php
function sendMessage($connect, $data) {
fwrite($connect, encode($data));
}
$socket = stream_socket_server("tcp://localhost:99", $errno, $errstr);
$connects = array();
while (true) {
$read = $connects;
$read[] = $socket;
$write = $except = null;
if (!stream_select($read, $write, $except, null)) {
continue;
}
if (in_array($socket, $read)) {
if (($connect = stream_socket_accept($socket, -1)) && $info = handshake($connect)) {
$connects[] = $connect;
}
unset($read[ array_search($socket, $read) ]);
}
$messages_new = array();
foreach($read as $connect) {
$data = fread($connect, 100000);
if (mb_strlen($data, "UTF-8") == 0) {
fclose($connect);
unset($connects[ array_search($connect, $connects) ]);
continue;
}
$messages_new[] = array(
"sender" => $connect,
"message" => decode($data)["payload"]
);
}
if(count($messages_new) > 0) {
foreach($connects as $connect) {
$messages_to_send = array();
foreach($messages_new as $key => $data) {
if($data["sender"] != $connect) {
$messages_to_send[] = $data["message"];
}
}
if(count($messages_to_send) > 0) {
echo "\n\n--------- MESSAGE ----------\n\n";
print_r($messages_to_send);
echo "\n\n----------- END ------------";
sendMessage($connect, json_encode($messages_to_send));
}
}
}
}
fclose($socket);
?>