Xpoint
   [напомнить пароль]

WebSocket непонятные символы от браузера

Метки: [без меток]
[удл]
2015-11-06 23:16:23 [обр] RW1R[досье]
Добрый вечер всем сочувстствующим! Помогите кто чем может...)
Пишу наипростейший веб-сокет сервер - http://pastebin.com/rKRBDn6x Проблема - после отправки браузером данных веб сервер принимает их и выводит на экран (бывает частично, бывает непонятными символами). Помогите разобраться в чем косяк, кроме кривых рук?!
спустя 3 часа 56 минут [обр] Евгений Седов aka KPbIC(7/176)[досье]
В пхп не силен, но рискну предположить, что проблема заключается в том, что на сокет приходят не строки, TCP протокол без разделителей, на сокет может прийти любое количество байт, и читать надо низкоуровневой функцией в цикле в буфер, и уже в буфере искать конец строки.
спустя 6 часов [обр] RW1R[досье]
Да, так и есть! $input = fread($client, 100000); на одном из форумов подсказали, что ошибка в этой функции, т.е. она читает любое количество бит, которое содержит соккет, т.е. может всю строку, а может и половину.
спустя 4 часа 21 минуту [обр] RW1R[досье]

Подскажите, пытаюсь принять данные функцией socket_recv, но она возвращает Warnint: socket_recv(): supplied resource is not a valid Socket resource in ...
foreach($connects as $key => $client)
{
if(in_array($client, $read))
{
//----здесь Warning!!----
$input = socket_recv($client, $buffer, 2048, 0); // ругается Warning: socket_recv(): supplied resource is not a valid Socket resource in ...
//-------------------------------------

/*if($buffer !== false )
{
$buffer = trim($buffer);
echo "Message: ".websock_decode($buffer)."\r\n";
}
unset($buffer);*/

}
}

какой указатель на соккет необходим функции? Вроде бы вот здесь принимается новое соединение, производится Хэндшейк, далее это соединение (указатель на соккет) добавляется в массив:

if (($connect = stream_socket_accept($socket, -1)))
{
if ($info = handshake($connect))
{
$connects[] = $connect;//добавляем его в список необходимых для обработки
echo $connect."\r\n";
echo "Принято подключение (". count($connects) .")\r\n";
}
}

спустя 2 часа 25 минут [обр] Marat Tanalin(3/78)[досье]

Документация на MDN (1, 2, 3) не помогает?

Есть и тематические книги — например, свежая «WebSocket» от Andrew Lombardi (O’Reilly, 2015).

Powered by POEM™ Engine Copyright © 2002-2005