Я отправляю из браузера через Websocket данные изображения размером около 5000 байт, но эта строка получает всего 1394 байта:
while ($bytes = socket_recv($socket, $r_data, 4000, MSG_DONTWAIT)) {
$data .= $r_data;
}
Это происходит после рукопожатия, которое принимается правильно. Данные json обрезаются после 1394 байт. В чем может быть причина?
В интерфейсе браузера он отправляет изображение в формате JSON:
websocket.send(JSON.stringify(request));
Интерфейс браузера в порядке, так как он работает с другими бесплатными программами PHP websocket, которые я тестировал.
Вот полный исходный код.
socket_recv
может выдавать. Эта информация об ошибке может быть действительно полезной. Используя оператор подавления ошибок, вы отбрасываете всю эту потенциально полезную информацию об ошибках. Я бы начал с этого, прежде чем пытаться делать случайные предположения о том, что может быть не так. - person Sherif   schedule 22.07.2015