美文网首页
WebSocket介绍

WebSocket介绍

作者: shh苏哈哈 | 来源:发表于2016-09-11 15:19 被阅读296次

    写在开始

    最近使用socket.io做了一个五子棋小游戏,附带简易聊天功能。刚好在总结XMLHttpRequest的相关知识,就想着先简单介绍一下WebSocket吧(毕竟api出奇的简单233)。

    WebSocket介绍

    WebSocket协议提供一个供TCP连接进行双向通讯的机制,以解决HTTP客户端和服务器之间请求-应答模式交互的不足。WebSocket连接默认情况下借用80(HTTP)和433(HTTPS)端口发起请求,WebSocket连接一开始通过发起一个http请求,如下:

    GET ws://echo.websocket.org/?encoding=text HTTP/1.1

    Origin: http://websocket.org

    Cookie: __utma=99as

    Connection: Upgrade

    Host: echo.websocket.org

    Sec-WebSocket-Key: uRovscZjNol/umbTt5uKmw==

    Upgrade: websocket

    Sec-WebSocket-Version: 13

    Connection: Upgrade,Upgrade: websocket等信息告诉服务器从HTTP切换到WebSocket。如果服务端支持WebSocket通讯,并同意切换,返回相应的响应头:

    HTTP/1.1 101 WebSocket Protocol Handshake

    Date: Fri, 10 Feb 2012 17:38:18 GMT

    Connection: Upgrade

    Server: Kaazing Gateway

    Upgrade: WebSocket

    Access-Control-Allow-Origin: http://websocket.org

    Access-Control-Allow-Credentials: true

    Sec-WebSocket-Accept: rLHCkw/SKsO9GAH/ZSFhBATDKrU=

    Access-Control-Allow-Headers: content-type

    此时http连接中断并被WebSocket连接取代。

    浏览器端使用WebSocket的api异常简单,但是要封装成好用的WebSocket库还是要下一番功夫的,并且服务器端没有标准的WebSocket规范,推荐使用socket.io

    socket.io和socket.io-client在服务器端和客户端有基本一致的编程体验,也是极易上手的。


    参考资料

    1.About HTML5 WebSocket

    2.如何理解 TCP/IP, SPDY, WebSocket 三者之间的关系

    相关文章

      网友评论

          本文标题:WebSocket介绍

          本文链接:https://www.haomeiwen.com/subject/fcuuettx.html