精品免费在线观看-精品欧美-精品欧美成人bd高清在线观看-精品欧美高清不卡在线-精品欧美日韩一区二区

17站長網

17站長網 首頁 編程教程 Html5教程 查看內容

HTML5 WebSocket

html5 WebSocket 提供了一種在單個 TCP 連接上進行全雙工通訊的協議

html5 WebSocket API 的實現中,瀏覽器和服務器只需要做一個握手的動作,然后,瀏覽器和服務器之間就形成了一條快速通道,兩者之間就直接可以數據互相傳送

瀏覽器通過 JavaScript 向服務器發出建立 WebSocket 連接的請求,連接建立以后,客戶端和服務器端就可以通過 TCP 連接直接交換數據

當獲取 Web Socket 連接后,可以通過 send() 方法來向服務器發送數據,并通過 onmessage 事件來接收服務器返回的數據

下面的代碼創建了一個 WebSocket 對象

var ws = new WebSocket(url,[protocol] );

new WebSocket() 第一個參數 url,指定連接的 URL

第二個參數 protocol 是可選的,指定了可接受的子協議

HTML5 WebSocket 屬性

下表列出了 WebSocket 對象的屬性

其中:ws 是 WebSocket 的一個對象

屬性描述
ws.readyState只讀屬性 readyState 表示連接狀態,可以是以下值
0 - 表示連接尚未建立
1 - 表示連接已建立,可以進行通信
2 - 表示連接正在進行關閉
3 - 表示連接已經關閉或者連接不能打開
ws.bufferedamount只讀屬性 bufferedamount 表示已被 send() 放入正在隊列中等待傳輸,但是還沒有發出的 UTF-8 文本字節數


WebSocket 事件

下表列出了 WebSocket 對象的相關事件

其中: ws 是 WebSocket 的一個對象

事件事件處理程序描述
openws.onopen連接建立時觸發
messagews.onmessage客戶端接收服務端數據時觸發
errorws.onerror通信發生錯誤時觸發
closews.onclose連接關閉時觸發


WebSocket 方法

下表列出了 WebSocket 對象的相關方法

其中: ws 是 WebSocket 的一個對象

方法描述
Socket.send()使用連接發送數據
Socket.close()關閉連接


WebSocket 實例

WebSocket 協議本質上是一個基于 TCP 的協議

為了建立一個 WebSocket 連接,客戶端瀏覽器首先要向服務器發起一個 HTTP 請求

這個請求和通常的 HTTP 請求不同,包含了一些附加頭信息,其中附加頭信息 "Upgrade: WebSocket" 表明這是一個申請協議升級的 HTTP 請求

服務器端解析這些附加的頭信息然后產生應答信息返回給客戶端

客戶端和服務器端的 WebSocket 連接就建立起來了

雙方就可以通過這個連接通道自由的傳遞信息,并且這個連接會持續存在直到客戶端或者服務器端的某一方主動的關閉連接

客戶端的 HTML 和 JavaScript

目前大部分瀏覽器支持 HTML5 WebSocket() 接口

我們可以在以下瀏覽器中嘗試: Chrome,Mozilla,Opera 和 Safari

ws.html

<!DOCTYPE HTML>
<Meta charset="utf-8">
<script>
   function WebSockettest()
   {
      if ("WebSocket" in window)
      {
         alert("您的瀏覽器支持 WebSocket!");
 
         // 打開一個 web socket         var ws = new WebSocket("ws://localhost:9998/echo");
 
         ws.onopen = function()
         {
            // Web Socket 已連接上,使用 send() 方法發送數據
            ws.send("發送數據");
            alert("數據發送中...");
         };
 
         ws.onmessage = function (evt) 
         { 
            var received_msg = evt.data;
            alert("數據已接收...");
         };
 
         ws.onclose = function()
         { 
            // 關閉 websocket
            alert("連接已關閉..."); 
         };
      }
 
      else
      {
         // 瀏覽器不支持 WebSocket
         alert("您的瀏覽器不支持 WebSocket!");
      }
}
</script>
<div id="sse">
   <a href="javascript:WebSockettest()">運行 WebSocket</a>
</div>

安裝 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 瀏覽器打開前面創建的 ws.html 文件

如果瀏覽器支持 WebSocket(),點擊"運行 WebSocket"

返回頂部
主站蜘蛛池模板: 国产影片中文字幕 | 久久中文字幕网站篠田优 | 超碰免费公开 | 日本高清天码一区在线播放 | 精品三级国产精品经典三 | 国产一级视频久久 | 三级黄色在线 | 黄毛片在线观看 | 免费片| 日韩在线视频免费观看 | 免费视频一区二区性色 | 久久95| 久久精品国产99久久6动漫欧 | 精品国产一区二区在线观看 | 亚洲欧美日韩国产精品26u | 久草福利免费 | 国内自拍视频网站 | 曰批免费动漫视频播放免费 | 制服丝袜综合第八页 | 成人精品视频一区二区三区尤物 | 性生活黄色大片 | 午夜久久久 | 国产精品第一区亚洲精品 | 亚洲性综合网 | 免费无遮挡十八女禁污污网站 | 视频在线观看一区二区三区 | 特级黄一级播放 | 成人区视频 | 国产福利在线观看第二区 | 国产区精品福利在线观看精品 | 一级特级欧美午夜片免费观看 | 毛片毛片毛片毛片出来毛片 | 欧美黄色免费 | 婷婷亚洲久悠悠色在线播放 | 91久久国产口精品久久久久 | 91精品国产露脸在线 | 欧美成人一区二区 | 日本另类xxxx| 国产成人盗拍精品免费视频 | 欧洲视频一区 | 色播亚洲|