web聊天室场景,为了获取最新的信息,有两种处理方法:
- ajax: 定时向服务端拉取最新的信息。不足之处在于浪费资源,而且存在延时
- commet: 页面利用iframe,由服务端推送消息到客户端
而websocket协议的出现是完善web双向通信的不足,它通过身份验证成功后,双方保持连接实现双向通信操作。
从websocket的字面意义,就能看得出它跟web的联系
1、通信协议
1.1、通信交互图
![4eae1279c7098b8e86601be55277968f.png](https://i-blog.csdnimg.cn/blog_migrate/501c1441e32ad8d2fd0ccd0c550d6a7f.jpeg)
1.2、协议格式
协议标识(1字节)+报头(1字节)+pack(2字节|8字节)+掩码(4字节)+data
<125 则pack不存在
>125 and < 127 则pack为2字节
>127 则8字节
1.3、掩码区别
客户端: 为安全考虑,需加上掩码;
而服务端: 则不用
1.4、报头计算方式
客户端->服务端:
客户端发送: 128与数据长度进行或运算、然后调用chr方法获取对应ascii
服务端接收: 调用ord方法获取对应ascii码值&#