分类目录归档:Websocket

WebSocket(四) —— 传输图片

前文解析数据帧中图,

 

现在再看左上角上面的图标,左上角的四个小列,也就是4位,第一位是FIN,后面三位是RSV1到3。官方文档上说RSV是预留的空间,正常为0,这就意味着,正常情况下他们可以当做0填充,那么前4位只有第一位的FIN需要设置,FIN表示帧结束,由于这篇中它不重要就不特别介绍了。接着后面的四位是储存opcode的值,这个opcode是标识数据类型的。这样数据的第一个字节我们就能理解它的含义了,看上面16进制的数据的第一个字节81换成二进制是1000001,第一个1是FIN的值,最后一个1是opcode的值。

 

Opcode是用来确定传输数据类型的。具体如下:

可以看出,1为传输文本,2为传输二进制(可以用来传输图片)。

第一个字节0x81 (10000001/129)为文本

第一个字节0x82 (10000010/130)为二进制

根据opcode改写frame函数:

 

现在进行测试:

 

2014-06-30_154151

 

 

同理也可以传输音频文件。

 

 

 

 

参考链接:

http://my.oschina.net/u/1187419/blog/281974?p=%7B%7BcurrentPage+1%7D%7D

http://www.web-tinker.com/article/20309.html

WebSocket(三) —— 生成数据帧

接收消息时需要解析数据帧,发送消息时一样需要生成数据帧。

方法如下:

返回数据:

html:

2014-06-29_155655

 

参考地址:

http://www.cnblogs.com/hustskyking/p/websocket-with-php.html

WebSocket(二) —— 解析数据帧

当握手成功后,客户端向服务端发起数据是使用了特定格式的数据帧,所得内容不能直接阅读理解,所以需要解析。

服务端握手后,打印数据结果如下:

2014-06-28_224334

这就是一个完整的数据帧,直接的16进制数据我们当然无法直接阅读,需要按照数据帧的格式把它里面的数据取出来才行。对于这个数据帧,官方文档提供了一个结构图

解析方法如下:

使用解析函数后得到,如下:

2014-06-28_225041 2014-06-28_225049

 

参考链接:

http://www.cnblogs.com/hustskyking/p/websocket-with-php.html

http://www.web-tinker.com/article/20306.html

websocket(一) —— 握手链接

 

 

 

参考链接:

http://www.cnblogs.com/hustskyking/p/websocket-with-php.html

http://www.web-tinker.com/article/20305.html