青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

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"

返回頂部
主站蜘蛛池模板: 亚洲精品在线不卡 | 亚洲福利精品电影在线观看 | 2021年国产精品久久 | 龙广在线收听 | 精品久久久亚洲精品中文字幕 | 精品一区二区三区在线成人 | 蜜桃狠狠色伊人亚洲综合网站 | 美娇妻的性奴史1一4 | 亚洲精品tv久久久久久久久久 | 欧美日韩一二区旡码高清在线 | 我半夜摸妺妺的奶C了她 | 饥渴的40岁熟妇完整版在线 | 视频在线观看高清免费看 | 精品亚洲午夜久久久久 | 九九热只有精品 | 琪琪伦伦影院理论片 | 中文字幕本庄优花喂奶 | 边做边爱播放3免费观看 | videossex性暴力| 果冻传媒在线完整免费播放 | 97色香蕉在线 | 邪恶肉肉全彩色无遮琉璃神社 | 午夜精品久久久内射近拍高清 | 97影院午夜午夜伦不卡 | 特黄AAAAAAA片免费视频 | 强上轮流内射高NP男男 | 久久久乱码精品亚洲日韩 | 捏揉舔水插按摩师 | 学生妹被爆插到高潮无遮挡 | 噜妇插内射精品 | 色姣姣狠狠撩综合网 | 欧美 亚洲 中文字幕 高清 | 99久久爱re热6在线播放 | 国产一级毛片在线 | 俄罗斯女人Z0ZOZO | 9位美女厕所撒尿11分 | 老板揉搓秘书丰满大乳 | 青青草原国产在线观看 | 男的插曲女的下面免费APP | 亚洲午夜精品A片久久不卡蜜桃 | 成人在免费视频手机观看网站 |