鉴权授权方案
根据WebSocket文档上的说明,鉴权授权是需要自己实现。我们自己实现的流程大概是,在每次连接前,访问接口取得鉴权必须的参数,在连接WebSocket的时候拼到url后面,聊天服务器在连接的时候取url后面的参数,用于判断是否连接是否合法
WebSocket原理
WebSocket协议一个应用层协议,它基于HTTP协议上的一个补充。它利用了HTTP协议的握手过程,通过HTTP请求头中的某些字段表示是否是WebSocket协议。
解决的问题
由于HTTP协议是一个无状态协议,基于HTTP协议实现长链接必须通过ajax轮询或者long pull实现。
通过第一个HTTP请求建立TCP连接后,之后的数据交换就不需要发送HTTP请求头了,所以WebSocket协议时一个真正的长链接协议,它与HTTP协议还是有区别的。
在此基础上WebSocket实现了一个双通道的连接,也就是在同一个TCP上既可以收消息也可以发消息。