我正在通过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
可能给出的任何错误。那些错误信息可能真的很有用。通过使用错误抑制运算符,你正在丢弃所有这些潜在有用的错误信息。在尝试随意猜测可能出了什么问题之前,我会从这个方面开始。 - Sherif