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

17站長網(wǎng)

17站長網(wǎng) 首頁 編程教程 Html5教程 查看內(nèi)容

HTML5 WebSocket

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

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

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

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

下面的代碼創(chuàng)建了一個 WebSocket 對象

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

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

第二個參數(shù) protocol 是可選的,指定了可接受的子協(xié)議

HTML5 WebSocket 屬性

下表列出了 WebSocket 對象的屬性

其中:ws 是 WebSocket 的一個對象

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


WebSocket 事件

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

其中: ws 是 WebSocket 的一個對象

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


WebSocket 方法

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

其中: ws 是 WebSocket 的一個對象

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


WebSocket 實例

WebSocket 協(xié)議本質上是一個基于 TCP 的協(xié)議

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

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

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

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

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

客戶端的 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() 方法發(fā)送數(shù)據(jù)
            ws.send("發(fā)送數(shù)據(jù)");
            alert("數(shù)據(jù)發(fā)送中...");
         };
 
         ws.onmessage = function (evt) 
         { 
            var received_msg = evt.data;
            alert("數(shù)據(jù)已接收...");
         };
 
         ws.onclose = function()
         { 
            // 關閉 websocket
            alert("連接已關閉..."); 
         };
      }
 
      else
      {
         // 瀏覽器不支持 WebSocket
         alert("您的瀏覽器不支持 WebSocket!");
      }
}
</script>
<div id="sse">
   <a href="javascript:WebSockettest()">運行 WebSocket</a>
</div>

安裝 pywebsocket

在執(zhí)行以上程序前,我們需要創(chuàng)建一個支持 WebSocket 的服務

可從pywebsocket下載 mod_pywebsocket,或者使用 git 命令下載

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

mod_pywebsocket 需要 python 環(huán)境支持

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

解壓下載的文件

進入 pywebsocket 目錄

執(zhí)行命令:

$ python setup.py build $ sudo python setup.py install

查看文檔說明

pydoc mod_pywebsocket

開啟服務

在 pywebsocket/mod_pywebsocket 目錄下執(zhí)行以下命令

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

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

現(xiàn)在我們可以在 Chrome 瀏覽器打開前面創(chuàng)建的 ws.html 文件

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

返回頂部
主站蜘蛛池模板: 国产精品大陆在线视频 | 一本色道久久综合亚洲精品加 | 天天狠狠弄夜夜狠狠躁·太爽了 | 日本一本在线播放 | 动漫美女和男人下载 | 男污女XO猛烈的动态图 | 偷柏自拍亚洲综合在线 | 国产免费变态视频网址网站 | 久久99精品AV99果冻 | 中文字幕va一区二区三区 | 国产一卡在线观看完整版 | 美美哒高清在线播放8 | 69久久国产露脸精品国产 | 国产成人精品午夜福麻豆报告 | 国语92电影网午夜福利 | 99久久精品费精品国产 | 亚洲国产成人精品无码区APP | 佐山爱巨大肥臀在线 | 波多野结衣网站www 波多野结衣教师系列6 | 2020亚洲色噜噜狠狠网站 | 野花韩国高清完整版在线 | 九九热这里只有国产精品 | 国产成人精品电影在线观看 | 久久伊人中文字幕有码 | 中文有码中文字幕免费视频 | 国产九九九九九九九A片 | 在线免费观看日本 | 亚洲精品久久久WWW游戏好玩 | 婷婷午夜影院 | 5G年龄确认我已满18免费 | 国产乱色伦影片在线观看 | 蜜桃成熟时2电影免费观看d | 夜夜狂射影院欧美极品 | 丰满人妻妇伦又伦精品APP国产 | 99视频精品全部 国产 | 和老外3p爽粗大免费视频 | 久热人人综合人人九九精品视频 | 啦啦啦视频在线观看WWW | 国产人妻午夜无码AV天堂 | 成人天堂资源WWW在线 | 亚洲AV色香蕉一区二区9255 |