1.Introduction to WebSocket

来源:互联网 发布:钰恒电子秤 数据采集 编辑:程序博客网 时间:2024/05/21 07:13


        官网英文参考:
                http://docs.oracle.com/javaee/7/tutorial/doc/websocket001.htm#BABDABHF

        中文解析:

            Websocket 应用,server作为一个Websocket 端点,client 通过server的URL地址连接到server.一旦server和client连接建立,那就是对称连接。server和client在连接open的时候,可以再任何时候,相互发送信息。一个client通常只连接一个server,server支持多个client连接。

            Websocket协议分为两个部分(握手和数据交换)。客户端通过URL地址初始化握手请求,握手协议兼容目前的HTTP协议。server收到请求,将其理解为一个HTTP连接升级请求。

            客户端发起的连接握手请求如下图:

GET /path/to/websocket/endpoint HTTP/1.1Host: localhostUpgrade: websocketConnection: UpgradeSec-WebSocket-Key: xqBt3ImNzJbYqRINxEFlkg==Origin: http://localhostSec-WebSocket-Version: 13

            服务端的回复请求如:
HTTP/1.1 101 Switching ProtocolsUpgrade: websocketConnection: UpgradeSec-WebSocket-Accept: K7DJLdLooIwIG/MOpvWFB3y3FE8=
                server通过一个方法,利用Sec-WebSocket-Key来产生Sec-WebSocket-Accept。客户端通过同样的方法,利用Sec-WebSocket-Key 产生Sec-WebSocket-Accept。如果接收的回复值和自己计算的值是一样的,那么就建立连接。握手成功之后,server和client就可以发送消息。

                    Websocket支持文本格式和二进制格式,Websocket的方法有close,ping,pong.ping,pong 连个方法可以包含数据。

                    Websocket 端点通过URIS区分表示,具体有下面两种方式:
ws://host:port/path?querywss://host:port/path?query
                    ws 表示非加密连接,wss 表示加密连接,端口是可以指定的。非加密通信默认是80端口,加密连接默认是443端口,path 是server 端点的路径,query是可选项。
                    主流浏览器都实现Websocket协议,而且提供javascript 接口(连接到server 端点,发送信息,回调)






0 0
原创粉丝点击