WebSocket实现实时通讯

WebSocket是HTML5以后基于TCP协议应用层的一种全双工实时通讯协议。注:全双工:个人了解服务器和客户端可以进行信息的相互传递


WebSocket由何而来

        在没有WebSocket的时候,我们都是基于HTTP协议进行的一种实时通信。而HTTP协议并没有状态,而服务器只会响应来自客户端请求,而他并不具备持续连接.

        所以我们必须手动去获取:

        两种方式:

            长轮询:

                描述:    在规定的时间内客户端通过Ajax去服务器端发送请求,问服务器端收到了某某某的消息没,如果收到了,那么则返回消息,否则返回某种状态.此次请求到此结束。

                优点:    后端的代码容易去编写

                缺点:    请求中大部分都是失效的,浪费资源。注:(说不定某次请求服务器时,对方并没有发送消息)

           长连接:

                描述:    客户端发送Ajax请求到服务器,服务器一直保持与客户端的连接。直到有新消息发送过来的时候返回给客户端的时候,才关闭该连接

                优点:    在没有消息的时候不会动不动就去发送请求,浪费资源较少

                缺点:    服务器与客户端一直保持连接会浪费资源。返回的顺序无保障,难以维护

WebSocket协议了解

            描述:    它是借Http请求产生握手,在Http的头部会包含WebSocket协议的请求,所以握手之后,协议进行一个升级,转成TCP协议进行交流.

            优点:    服务器能够主动发送消息给客户端,从而保证一个实时性

            缺点:    不支持低版本浏览器,Tomcat7.0以下,对开发人员要求较高.需要了解JavaScript.(一般程序员都会滴咯!例如说:ME)

WS与WSS协议?

            描述:    WebSocket (WS):默认是基于HTTP80端口

                        WSS(Web Socket Secure)是WebSocket的加密版本,默认是基于HTTP443端口。

WebSocket如何进行实时通讯

WebSocket实现实时通讯_第1张图片
WebSocket客户端与服务器端通讯流程

            描述:    首先客户端发送链接请求到服务器,服务器做出反应.是否连接成功.连接成功后,我们可以给指定用户发送消息,消息首先经过服务器验证,判断用户是否在线,如果在线服务器主动给对方客户端发送消息.

简单示例讲解


WebSocket实现实时通讯_第2张图片
前端代码JS


WebSocket实现实时通讯_第3张图片
后端代码片段1
WebSocket实现实时通讯_第4张图片
后端代码片段2

你可能感兴趣的:(WebSocket实现实时通讯)