看看socket.io

第三版的Engine.io 协议git

来看一下 Engine.io 会话github

    1 建立一个会话链接到Engine.io使用 URL
web

    2 当链接 open 的时候,server会响应一下JSON-encoded 握手数据:json

            。 sid     会话ID(string)服务器

            。 upgrades    会话升级得字符串(Array of String)websocket

            。 pingTimeout     Server配置的ping超时时间
session

    3 客户端发送ping 服务器端要发送pong 响应框架

    4 客户端和服务器端能够随意交换消息包。socket

    5 Polling transports 能够发送一个“close” 关闭socket。由于他老是“opening” and “closing”oop


URLs

    一个 Engine.io url的组成:

        /engine.io/[?]

      1 engine.io pathName的更改取决于使用者使用的 更高级别的框架。

      2  还有四个保留的query string  :

            。 transport 链接协议的名称

            。 j  若是transport 是 polling , JSONP响应是必须的, j 必须设置为JSONP的响应索引。

            。 sid 若是客户端提供了session Id, 那么query string上就必须有

            。 b64  若是不支持xhr2, b64=1 就表示server端的binary data 发送的是base64 编码的数据。

       

Encoding 

    编码的包里面包含两部分

            packet

            payload

  Packet

        这是一个UTF-8编码的string or binary data。

        Stirng  <packet type id>[<data>]  example  2probe

        binary data: 当咱们发送二进制数据的时候 type id 要是第一个字节, 剩下是实际的内容 4|0|1|2|3|4|5

        

    packet type id:

        0 open  向服务端发送一个建立新的传输链接

        1 close  关闭当前的传输协议, 但并不关闭当前的socket 链接

        2 ping 发送ping 包  example 2probe

        3 pong 发送pong 包 example 3probe

        4 message 表示发送的是消息

            example server 发送 4HelloWorld

                           client 接收消息并回调 socket.on('message', function(data) {console.log(data)})

        5  upgrade 

                在服务器和客户端切换传输协议以前, 根据upgrade 发送的协议测试,若是成功就切换新传输协议

        6 noop

            主要使用在轮询升级到websocket时

            example

                1 client 建立新的链接和传输协议

                2 client send 2probe

                3 server send 3probe

                4 client send 5

                5 server 清理和关闭旧的传输协议,并切换到新的传输协议       


Payload 

    由一组一组的<length1>:<packet1>这样的包组成, 不支持xhr2.

    

Transport

    支持的传输协议

        websocket

        flashsocket

        polling

            jsonp

            xhr

    https://github.com/socketio/engine.io-protocol

相关文章
相关标签/搜索