HTML5學習筆記(七)WebSocket

WebSocket是HTML5開始提供的一種在單個 TCP 鏈接上進行全雙工通信的協議。在WebSocket API中,瀏覽器和服務器只須要作一個握手的動做html

瀏覽器經過 JavaScript 向服務器發出創建 WebSocket 鏈接的請求,鏈接創建之後,客戶端和服務器端就能夠經過 TCP 鏈接直接交換數據。python

當你獲取 Web Socket 鏈接後,你能夠經過 send() 方法來向服務器發送數據,並經過 onmessage 事件來接收服務器返回的數據。git

WebSocket 屬性

屬性 描述
Socket.readyState

只讀屬性 readyState 表示鏈接狀態,能夠是如下值:github

  • 0 - 表示鏈接還沒有創建。web

  • 1 - 表示鏈接已創建,能夠進行通訊。瀏覽器

  • 2 - 表示鏈接正在進行關閉。服務器

  • 3 - 表示鏈接已經關閉或者鏈接不能打開。websocket

Socket.bufferedAmount

只讀屬性 bufferedAmount 已被 send() 放入正在隊列中等待傳輸,可是尚未發出的 UTF-8 文本字節數。socket


WebSocket 事件

事件 事件處理程序 描述
open Socket.onopen 鏈接創建時觸發
message Socket.onmessage 客戶端接收服務端數據時觸發
error Socket.onerror 通訊發生錯誤時觸發
close Socket.onclose 鏈接關閉時觸發

WebSocket 方法

方法 描述
Socket.send()

使用鏈接發送數據ui

Socket.close()

關閉鏈接

安裝 pywebsocket

在執行以上程序前,咱們須要建立一個支持 WebSocket 的服務。從 pywebsocket 下載 mod_pywebsocket ,或者使用 git 命令下載:

git clone https://github.com/google/pywebsocket.git

mod_pywebsocket 須要 python 環境支持

mod_pywebsocket 是一個 Apache HTTP 的 Web Socket擴展,安裝步驟以下:

 

  • 解壓下載的文件。

  • 進入 pywebsocket 目錄。

  • 執行命令:

    $ python setup.py build $ sudo python setup.py install
  • 查看文檔說明:

    $ pydoc mod_pywebsocket

開啓服務

在 pywebsocket/mod_pywebsocket 目錄下執行如下命令:

$ sudo python standalone.py -p 9998 -w ../example/

以上命令會開啓一個端口號爲 9998 的服務,使用 -w 來設置處理程序 echo_wsh.py 所在的目錄。

如今咱們能夠在 Chrome 瀏覽器打開前面建立的 runoob_websocket.html 文件。若是你的瀏覽器支持 WebSocket(), 點擊"運行 WebSocket",你就能夠看到整個流程各個步驟彈出的窗口,流程 Gif 演示

相關文章
相關標籤/搜索