WebSocket的使用
应用介绍
WebScoket 与 Socket 的区别在于前者提供了完善的API以及握手的机制,而后者是抽象出来的一种概念。
WebSocket在现在egret中应用非常广泛,之前接触的所有的游戏都使用webSocket进行通信,
除了最近接手的这个是使用http进行的。
WebSocket的优点:
Websocket解决了HTTP的上述难题,可以参考上一篇博客。
首先,被动性,当服务器完成协议升级后(HTTP->Websocket),
服务端就可以主动推送信息给客户端啦。解决了上面同步有延迟的问题。
解决服务器上消耗资源的问题:其实我们所用的程序是要经过两层代理的,
即HTTP协议在Nginx等服务器的解析下,然后再传送给相应的Handler(php等)来处理。
简单地说,我们有一个非常快速的 接线员(Nginx) ,他负责把问题转交给相应的 客服(Handler) 。
Websocket就解决了这样一个难题,建立后,可以直接跟接线员建立持久连接,有信息的时候客服想办法通知接线员,然后接线员在统一转交给客户。
由于Websocket只需要一次HTTP握手,所以说整个通讯过程是建立在一次连接/状态中,
也就避免了HTTP的非状态性,服务端会一直知道你的信息,直到你关闭请求,
这样就解决了接线员要反复解析HTTP协议,还要查看identity info的信息。
本篇主要提及webSocket的上手使用