小程序的websocket协议是wss的,可以理解为ws+ssl,刚上线的时候只能够开一个websocket的入口,针对于单纯的聊天应用或者简单的交互应用是足够的,但如果有玩游戏的同时又要聊天,那么一个websocket就显然不够了,后来新增了一个sockettask,在使用小程序主websocket的同时,还可以使用sockettask新开websocket链接,相当于多开了个线程去通信。
为什么要使用websocket?
优点:
我们主要关注于双向通信和实时性,落实到具体的应用场景,比如可以应用于实时班车增强实时性,应用于前端状态管理可以识别在线,游戏,共享页面等等。具体的特点如下:
1.支持双向通信,实时性更强
也就是说只要能打开页面,基本上所有的逻辑和场景都是秒显,体验大大提升
2.更好的二进制支持。(文件传输)
3.较少的控制开销,连接创建后,ws客户端、服务端进行数据交换时,协议控制的数据包头部较小;在不包含头部的情况下,服务端到客户端的包头只有2~10字节(取决于数据包长度),客户端到服务端的的话,需要加上额外的4字节的掩码。而HTTP协议每次通信都需要携带完整的头部。
4.支持扩展。ws协议定义了扩展,用户可以扩展协议,或者实现自定义的子协议。(比如支持自定义压缩算法等)
缺点:
需做较多异常处理,链接不上、重连等逻辑在前端和服务端都要做响应的处理
领取专属 10元无门槛券
私享最新 技术干货