php – 解码网络字符(HTML5 Websocket)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 解码网络字符(HTML5 Websocket),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1320字,纯文字阅读大概需要2分钟。
内容图文
![php – 解码网络字符(HTML5 Websocket)](/upload/InfoBanner/zyjiaocheng/696/188f49e9b766435ca9cfbd1015efaf00.jpg)
我正在尝试使用HTML5 websocket开发一个网络聊天(使用hybi-17协议),但是我对字符解码有一些问题.
这是我通过客户端发送的内容(用户代理:Firefox 7):
var socket = new MozWebSocket ('ws://localhost/server.php');
socket.onopen = function () {
alert ('Opened!');
}
然后,我发送这些数据:
socket.send ('Hello');
socket.send ('World');
这是服务器端代码:
$bytes = @socket_recv ($socket, $buffer, BUFSIZE, 0);
if (($bytes == 0) || ($bytes == 2)) {
this->disconnect ($socket);
}
else {
echo $buffer;
}
虽然这是收到的数据回应:
??6S~g?Y (Hello)
???~????? (World)
如您所见,套接字已打开,数据从客户端传输到服务器.
服务器使用PHP5并使用普通的套接字函数来构建连接.
如何在人类可读的字符串中解码该不可读的字符串?
提前致谢.
解决方法:
当你第一次开始编写使用TCP的代码时,你犯了一个最常见的错误 – 你忘了实现协议了!
在您的情况下,您忘记了它在服务器中.客户端已经有一个WebSocket实现,您可以通过创建一个’MozWebSocket’对象来请求它. WebSocket specification说:“每帧以0x00字节开头,以0xFF字节结束,中间包含UTF-8数据.”服务器中的代码在哪里找到帧的开头和帧的结尾?哪里的代码丢弃0xFF字节?
你实际上必须实现协议.协议规范告诉您如何解码接收的数据. (在您的情况下,您看到的垃圾数据很可能是协议握手的一部分 – 看起来像^ n:ds [07U阶段的4U].
我很确定你调用PHP脚本来通过Web服务器处理WebSocket调用的方法是行不通的.也就是说,除非您的Web服务器知道如何执行此操作 – WaterSpout和phpdaemon.
内容总结
以上是互联网集市为您收集整理的php – 解码网络字符(HTML5 Websocket)全部内容,希望文章能够帮你解决php – 解码网络字符(HTML5 Websocket)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。