PHP使用WebSocket

来源:互联网 发布:js toobject方法 编辑:程序博客网 时间:2024/06/16 16:18

WebSocekt的基础这里就不介绍了,网上一抓一大把,这里来和大家讨论一下一些坑

解码和编码

这个是协议规定的,从客户端发送给服务端的数据一定是经过特殊编码的,如果使用的是HTML5的websocket,在使用send函数的时候会自动进行编码,这个我们不用管,不过编码规则还是要了解一点的,毕竟服务端发数据给客户端或者解码是需要我们自己解析的,权威的文档可以看这里(所以做it英文还是要好啊。。。):
websocket_RFC
这里贴一张里面的图:

这里写图片描述

里面各个字段的意思还请自己查看文档
这里只想说一下,服务端返回的数据必须使用编码规则编码,不然客户端收不到数据,接受到的数据也需要进行解码,不然是乱码。

关闭或刷新网页

刷新网页其实执行两个步骤,先关闭连接,再重新连接,这里讨论一下关闭连接,客户端关闭连接会向服务端发送一个信息,表面自己即将断开socket连接,这个信息只有一个字节,在chrome和firefox上都是 10001000 ,这个信息的意思就要对照上面那张图来理解了,第一位表示这是最后一段信息,即后面没有信息,2-4位是留着将来用的,重要的就是5-8位,opcode,即1000,转为16进制就是ox8,这是什么意思呢:

这里写图片描述

没错,他标志这是发起一个断开连接的信息,所以当你接受到这样一条信息,你要明白客户端已经断开连接了。
然而在safari关闭浏览器时,发送过来的是 0000 0000 ,这个不清楚怎么回事。有明白的同学烦请指教。

如有不准确的地方烦请指正,共同学习共同进步

原创粉丝点击