您好,欢迎访问三七文档
WebSocketWhy•实时数据•游戏•聊天•SNS•直播Now•Polling(轮询)•AJAX(Comet)•Flashxmlsocket•Streaming(multi-part)•ForeverIframesPollingAJAXWebSocket•WebSocketHTML5新协议,是一种双向通信协议,建立在TCP之上,同http一样通过TCP来传输数据:handshakeTransport•Upgradeheader中标识使用特殊协议websocket•与Http区别1.长连接,server和client都能主动的向对方发送或接收数据2.WebSocket需要通过一次握手(handshaking)建立连接(类似于TCP客户端和服务器端进行三次握手连接)DiffHandshaking•Sec-WebSocket-Key:client发送随机码•Sec-WebSocket-Accept:服务器端把“Sec-WebSocket-Key”加上字符串“258EAFA5-E914-47DA-95CA-C5AB0DC85B11”,使用SHA-1加密,之后进行BASE-64编码,将结果做为“Sec-WebSocket-Accept”头的值,返回给客户端HandshakingTransport•URIws-URI=ws://host[:port]path[?query]wss-URI=wss://host[:port]path[?query]•帧:在WebSocket协议中,数据使用帧序列来传输;客户端必须掩码(mask)它发送到服务器的所有帧;服务器必须不掩码发送到客户端的所有帧•类型1.控制帧2.数据帧FramesControlFrames•控制帧由操作码确定,其中操作码最高位是1•Close关闭连接,opcode=0x8•心跳检查client与server间进行连接校验pingpongping:opcode=0x9pong:opcode=0xADataFrames•基本帧定义了带有操作码(opcode)的帧类型、负载长度、和用于“扩展数据”与“应用数据”及“负载数据”指定位置,由操作码最高位是0的操作码标识•消息数据传输格式Text:opcode=0x1,UTF-8编码Binary:opcode=0x2BrowserSupportServerSupportHow•HTML5Websocket•Node.js/Socket.IO•SockJS-Client/SockJS-node•Spring4WebSocketSupport•jWebSocket•…HTML5APIHTML5APISocket.IO•SupportprotocolWebSocketAdobe®Flash®SocketAJAXlongpollingAJAXmultipartstreamingForeverIframeJSONPPolling•Importscriptsrc=
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:webSocket
链接地址:https://www.777doc.com/doc-7237169 .html