1 fread()读取socket流,如果socket中没有数据了,就会一直处于等待状态- - !,造成假死现象
解决数据结束判断的方法:自定义数据协议
2 向socket发送接收数据
stream_socket_sendto($socket, "date\n");
stream_socket_recvfrom($socket, 65535);
fwrite($fp,"$message\n");
fread($fp, 1024);
3 WEB TEXTAREA中输入回车键,数据等于"\n\r",对应的ASCII码为10("\n") 13("\r")
4 客户端使用json_encode()方法编码json数据之后,对应数据最后以为则不等于"\n"了,该字符变成\\n,实际上识别成两个字符,"\"与"n",而数据是以双引号(右)结尾
5 websocket握手成功后,一段时间内没有数据通讯的话会自动断开,这时候可以通过服务器发送心跳检测实现与客户端长时间连接.
本文探讨了使用fread()从socket读取数据时遇到的问题及解决方案,并介绍了如何通过自定义数据协议来避免假死现象。此外,还讲解了在WebSocket应用中实现心跳检测的方法,以确保长时间连接的有效性。
358

被折叠的 条评论
为什么被折叠?



