WebSocket作为一个HTTP的升级协议,其实对HTTP协议用的不多,主要是消息头相关部分,WebScoket协议最初的动机应该是给网页应用增加一个更贴近实时环境的通讯方式,让某些网页应用得到更佳的通讯质量(双工,低延迟,二进制流,实时性等等)。这种方式在网页游戏或则小程序游戏中得到了非常好的应用,但我想谈的是WebSocket对一般手游或则端游的意义。
我说到这儿,可能很多人都觉得奇怪,一般的手游或则端游都有自己的通讯方式,最常见的就是用Socket实现的通讯,为啥要用WebScoket来替代Scoket?
在我看来,原因很简单,就一个因素就足以抵消所有的疑问:安全!因为WebScoket是HTTP协议的升级,因此,现在绝大部分的CDN服务是支持WebScoket的,那么对于网络上常见的DDOS攻击,CC攻击,不少CDN提供商是自带DDOS,CC攻击保护的,意思就是,你不需要额外花钱。唯一的就是CDN流量会给你算钱。本来一个固定带宽的游戏,转成CDN透传之后,会略微增加成本。但好处显而易见,通过CDN做隔离,服务器的真实IP不用暴露,所有的通讯都走CDN透传,一般的DDOS或则CC攻击在CDN透传之前就被拦下,包括一些有意攻击服务器的权限行为,在无法得到服务器真实IP的条件下变得毫无意义。此外还节约了高防的费用,例如一般的高防服务器,都是以万作为月费单位,而且还有流量和次数限制,如果换成WebScoket,使用带DDOS保护的CDN,则可以省掉这一笔费用。而CDN的费用仅仅是高防费用的几分之一甚至十分之一,单纯从经济角度考虑,替代就势在必行。