WebSocket簡單使用(二)-客戶端
原文 http://www.oseye.net/user/kevin/blog/79
關於WebSocket我打算分如下幾篇博文來探探路:
- WebSocket簡單使用(一) – 概念
- WebSocket簡單使用(二) – 客戶端
- WebSocket簡單使用(三) – 伺服器端
- WebSocket簡單使用(四) – 完整例項
- WebSocket簡單使用(五) – 模擬微信 連線鍵盤 功能
背景:
前幾天老大突然發現微信有個連結鍵盤的功能,我仔細想了下或許是使用WebSocket來實現的,又加上最近HTML5的呼聲愈來愈高,覺得有必要研究下HTML5了。
如概念篇中介紹的握手協議,客戶端是由瀏覽器提供了API,所以只要使用JavaScript來簡單呼叫即可,而伺服器端是要自己實現的,伺服器端將在下個博文來講。
WebSocket JavaScript 介面定義:
- [Constructor(inDOMString url, optional inDOMString protocol)]
- interfaceWebSocket{
- readonly attribute DOMString URL;
- // ready state
- constunsignedshort CONNECTING =0;
- constunsignedshort OPEN =1;
- constunsignedshort CLOSED =2;
- readonly attribute unsignedshort readyState;
- readonly attribute unsignedlong bufferedAmount;
- // networking
- attribute Function onopen;
- attribute Function onmessage;
- attribute Function onclose;
- boolean send(inDOMString data);
- void close();
- };
- WebSocketimplementsEventTarget;
簡單瞭解下介面方法和屬性:
- readyState表示連線有四種狀態:
CONNECTING (0):表示還沒建立連線;
OPEN (1): 已經建立連線,可以進行通訊;
CLOSING (2):通過關閉握手,正在關閉連線;
CLOSED (3):連線已經關閉或無法開啟; - url是代表 WebSocket 伺服器的網路地址,協議通常是”ws”或“wss(加密通訊)”,send 方法就是傳送資料到伺服器端;
- close 方法就是關閉連線;
- onopen連線建立,即握手成功觸發的事件;
- onmessage收到伺服器訊息時觸發的事件;
- onerror異常觸發的事件;
- onclose關閉連線觸發的事件;
JavaScript呼叫瀏覽器介面例項如下:
-
- var wsServer =`ws://localhost:8888/Demo`;//伺服器地址
- var websocket =newWebSocket(wsServer);//建立WebSocket物件
- websocket.send(“hello”);//向伺服器傳送訊息
- alert(websocket.readyState);//檢視websocket當前狀態
- websocket.onopen =function(evt){
- //已經建立連線
- };
- websocket.onclose =function(evt){
- //已經關閉連線
- };
- websocket.onmessage =function(evt){
- //收到伺服器訊息,使用evt.data提取
- };
- websocket.onerror =function(evt){
- //產生異常
- };
相關文章
- java websocket 客戶端JavaWeb客戶端
- websocket(多個客戶端)Web客戶端
- 基於WebSocket的modbus通訊(二)- 客戶端Web客戶端
- 修改CAS客戶端 使用簡單HTTP協議客戶端HTTP協議
- 使用 WebSocket 客戶端連線 MQTT 伺服器Web客戶端MQQT伺服器
- Mqtt websocket javascript 客戶端例項MQQTWebJavaScript客戶端
- ElasticSearch客戶端簡單操作例項Elasticsearch客戶端
- github客戶端fork的簡單教程Github客戶端
- [jaeger] 二、客戶端使用 (Java版本)客戶端Java
- netty系列之:使用netty搭建websocket客戶端NettyWeb客戶端
- 使用OAuth保護REST API並使用簡單的Angular客戶端OAuthRESTAPIAngular客戶端
- 實現服務端和客戶端的實時雙向資料傳輸-WebSocket簡單瞭解服務端客戶端Web
- github客戶端使用Github客戶端
- SHA-256加密簡單例項(客戶端、服務端)加密單例客戶端服務端
- 關於 WebSocket 和 HTTP 區別的思考以及一個最簡單的 WebSocket 的客戶端和伺服器實現WebHTTP客戶端伺服器
- reqwest:簡單而強大的 Rust HTTP 客戶端RustHTTP客戶端
- 簡單實用的FTP客戶端:Viper FTP for MacFTP客戶端Mac
- TCP通訊客戶端和服務端簡單程式碼實現TCP客戶端服務端
- Socket最簡單的客戶端與服務端通訊-Java客戶端服務端Java
- 利用tirpc庫實現簡單的客戶端和服務端RPC客戶端服務端
- 學習WebSocket(二):使用Spring WebSocket做一個簡單聊天室WebSpring
- FTP 客戶端使用教程FTP客戶端
- MQTTJava客戶端的使用MQQTJava客戶端
- redis客戶端的使用Redis客戶端
- Jbpm3.2 開發HelloWorld (簡單請假流程)客戶端客戶端
- RMAN之客戶端互動(二)客戶端
- Java OAuth 2.0 客戶端程式設計(二): 客戶端憑據授權JavaOAuth客戶端程式設計
- Linux下簡單的ACE socket客戶端和伺服器端Linux客戶端伺服器
- 基於node的tcp客戶端和服務端的簡單通訊TCP客戶端服務端
- ftp客戶端,ftp客戶端軟體具體怎麼使用?FTP客戶端
- 簡單好用的Git客戶端 Fork 最新免啟用版Git客戶端
- 使用 Webix 建立 Email 客戶端WebAI客戶端
- NEO-GUI 客戶端使用GUI客戶端
- dbus客戶端使用指南客戶端
- odps dship客戶端使用客戶端
- ubuntu 下svn客戶端使用Ubuntu客戶端
- Winform客戶端引用WCF客戶端後,部分類無法正常使用ORM客戶端
- 學習WebSocket(一):Spring WebSocket的簡單使用WebSpring