搜尋
首頁web前端H5教程認識HTML5的WebSocket

認識HTML5的WebSocket

Jul 23, 2017 am 11:03 AM
htmlwebwebsocket

認識HTML5的WebSocket

在HTML5規格中,我最喜歡的Web技術就是快速變得流行的WebSocket API。 WebSocket提供了一個受歡迎的技術,以取代我們過去幾年一直在使用的Ajax技術。這個新的API提供了一個方法,從客戶端使用簡單的語法有效地推動訊息到伺服器。讓我們來看看HTML5的WebSocket API:它可用於客戶端、伺服器端。而且有一個優秀的第三方API,名為Socket.IO。

一、什麼是WebSocket API?
WebSocket API是下一代客戶端-伺服器的非同步通訊方法。該通訊取代了單一的TCP套接字,使用ws或wss協議,可用於任意的客戶端和伺服器程式。 WebSocket目前由W3C進行標準化。 WebSocket已經受到Firefox 4、Chrome 4、Opera 10.70以及Safari 5等瀏覽器的支援。

WebSocket API最偉大之處在於伺服器和客戶端可以在給定的時間範圍內的任意時刻,相互推送訊息。 WebSocket並不限於以Ajax(或XHR)方式通信,因為Ajax技術需要客戶端發起請求,而WebSocket伺服器和客戶端可以彼此相互推送訊息;XHR受到網域的限制,而WebSocket允許跨網域通訊。

Ajax技術很聰明的一點是沒有設計要使用的方式。 WebSocket為指定目標創建,用於雙向推播訊息。

二、WebSocket API的用法
只專注於客戶端的API,因為每個伺服器端語言都有自己的API。下面的程式碼片段是開啟一個連接,為連接建立事件監聽器,斷開連接,訊息時間,發送訊息返回伺服器,關閉連接。
CODE:

// 创建一个Socket实例
var socket = new WebSocket('ws://localhost:8080'); 
// 打开Socket 
socket.onopen = function(event) { 
  // 发送一个初始化消息
  socket.send('I am the client and I\'m listening!'); 
  // 监听消息
  socket.onmessage = function(event) { 
    console.log('Client received a message',event); 
  }; 
  // 监听Socket的关闭
  socket.onclose = function(event) { 
    console.log('Client notified socket has closed',event); 
  }; 
  // 关闭Socket.... 
  //socket.close() 
};

WebSocket是HTML5開始提供的單一TCP連線上進行全雙工通訊的協定。
在WebSocket API中,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以資料互相傳送。

瀏覽器透過JavaScript向伺服器發出建立WebSocket連線的請求,連線建立以後,客戶端和伺服器之間就可以透過TCP連線直接交換資料。

當你取得Web Socket連線後,你可以透過send()方法來傳送數據,並透過onmessage事件接受伺服器傳回的資料。

以下api用於建立WebSocket物件。

var socket = new WebSocket(url,[protocol]);
以上程式碼中第一個參數url,指定連結的URL。第二個參數protocol是可選的,指定了可接受的子協定。

WebSocket 屬性

以下是WebSocket物件的屬性。假定我們使用了上述程式碼建立了socket物件:
Socket.readyState 唯讀屬性readyState表示連線狀態,可以是下列程式碼:
       1. 0-表示連線尚未建立。
       2. 1-表示連結已建立,可進行通行。
       3. 2-表示連線正在關閉。
       4. 3-表示連線已關閉或無法開啟連線。
Socket.bufferedAmount 只讀butteredAmount已經send()放入正在佇列中等待傳輸,但是還沒有發出的UTF-8文字位元組數。

WebSocket事件
以下是WebSocket物件的相關事件。假定我們使用了創建的socket:
事件:open            Socket.onmessage             Socket.onerror         Socket.onclose
說明:連線中觸發時觸發         通訊發生錯誤時觸發       連結關閉時觸發

WebSocket方法
以下是WebSocket物件的相關方法。假定我們使用了上述程式碼來建立Socket物件:

方法: Socket.send()              Socket.close()
 

以上是認識HTML5的WebSocket的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
H5代碼示例:實際應用和教程H5代碼示例:實際應用和教程Apr 25, 2025 am 12:10 AM

H5提供了多種新特性和功能,極大地增強了前端開發的能力。 1.多媒體支持:通過和元素嵌入媒體,無需插件。 2.畫布(Canvas):使用元素動態渲染2D圖形和動畫。 3.本地存儲:通過localStorage和sessionStorage實現數據持久化存儲,提升用戶體驗。

H5和HTML5之間的連接:相似性和差異H5和HTML5之間的連接:相似性和差異Apr 24, 2025 am 12:01 AM

H5和HTML5是不同的概念:HTML5是HTML的一個版本,包含新元素和API;H5是基於HTML5的移動應用開發框架。 HTML5通過瀏覽器解析和渲染代碼,H5應用則需要容器運行並通過JavaScript與原生代碼交互。

H5代碼的基礎:密鑰元素及其目的H5代碼的基礎:密鑰元素及其目的Apr 23, 2025 am 12:09 AM

HTML5的關鍵元素包括、、、、、等,用於構建現代網頁。 1.定義頭部內容,2.用於導航鏈接,3.表示獨立文章內容,4.組織頁面內容,5.展示側邊欄內容,6.定義頁腳,這些元素增強了網頁的結構和功能性。

HTML5和H5:了解常見用法HTML5和H5:了解常見用法Apr 22, 2025 am 12:01 AM

HTML5和H5沒有區別,H5是HTML5的簡稱。 1.HTML5是HTML的第五個版本,增強了網頁的多媒體和交互功能。 2.H5常用於指代基於HTML5的移動網頁或應用,適用於各種移動設備。

HTML5:現代網絡的基礎(H5)HTML5:現代網絡的基礎(H5)Apr 21, 2025 am 12:05 AM

HTML5是超文本標記語言的最新版本,由W3C標準化。 HTML5引入了新的語義化標籤、多媒體支持和表單增強,提升了網頁結構、用戶體驗和SEO效果。 HTML5引入了新的語義化標籤,如、、、等,使網頁結構更清晰,SEO效果更好。 HTML5支持多媒體元素和,無需第三方插件,提升了用戶體驗和加載速度。 HTML5增強了表單功能,引入了新的輸入類型如、等,提高了用戶體驗和表單驗證效率。

H5代碼:編寫清潔有效的HTML5H5代碼:編寫清潔有效的HTML5Apr 20, 2025 am 12:06 AM

如何寫出乾淨高效的HTML5代碼?答案是通過語義化標籤、結構化代碼、性能優化和避免常見錯誤。 1.使用語義化標籤如、等,提升代碼可讀性和SEO效果。 2.保持代碼結構化和可讀性,使用適當縮進和註釋。 3.優化性能,通過減少不必要的標籤、使用CDN和壓縮代碼。 4.避免常見錯誤,如標籤未閉合,確保代碼有效性。

H5:如何增強網絡上的用戶體驗H5:如何增強網絡上的用戶體驗Apr 19, 2025 am 12:08 AM

H5通過多媒體支持、離線存儲和性能優化提升網頁用戶體驗。 1)多媒體支持:H5的和元素簡化開發,提升用戶體驗。 2)離線存儲:WebStorage和IndexedDB允許離線使用,提升體驗。 3)性能優化:WebWorkers和元素優化性能,減少帶寬消耗。

解構H5代碼:標籤,元素和屬性解構H5代碼:標籤,元素和屬性Apr 18, 2025 am 12:06 AM

HTML5代碼由標籤、元素和屬性組成:1.標籤定義內容類型,用尖括號包圍,如。 2.元素由開始標籤、內容和結束標籤組成,如內容。 3.屬性在開始標籤中定義鍵值對,增強功能,如。這些是構建網頁結構的基本單位。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器