首頁  >  文章  >  web前端  >  什麼是Websocket?解析h5中的Websocket

什麼是Websocket?解析h5中的Websocket

零下一度
零下一度原創
2017-05-10 13:54:291425瀏覽

什麼是 WebSocket

WebSocket的服務端和用戶端可以雙向進行通訊,並且允許跨網域通訊。由HTTP/1.1Upgrade機制支持,透過ws(非加密)或wss(加密)協定進行通訊

WebSocket WebSocket(
  in DOMString url,
  in optional DOMString protocols
);

WebSocket WebSocket(
  in DOMString url,
  in optional DOMString[] protocols
);

HTML5 中的WebSocket

#HTML5只專注於客戶端的<a href="http://www.php.cn/js/js-weixinapp-api.html" target="_blank">API</a>#, 而伺服器端是各個語言自己去實作

// 创建一个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()
};

事件
#onclose onerror onmessage onopen

屬性

  • #readyState: CONNECTING  0 OPEN  1 CLOSING 2 CLOSED  3

  • ##binaryType: String Blob ArrayBuffer

#相容性

方法1:如果客戶端不支援
WebSocket, 那麼可以使用幾個候選選項Flash Socket AJAX long-polling AJAX multipart streaming IFrame JSON<a href="http://www.php.cn/wiki/1488.html" target="_blank">P polling</a>

#方法2#使用
Socket.io來抹平差異,該庫可以在瀏覽器不支援WebSocket的時候, 自動用瀏覽器支援的消息推送方式進行連接, 該庫還會檢測連接是否掉線,並在掉線時自動為你重新連接。

// 创建Socket.IO实例,建立连接
var socket= new io.Socket(&#39;localhost&#39;,{
  port: 8080,
});
socket.connect();
// 添加一个连接监听器
socket.on(&#39;connect&#39;,function(){
  console.log(&#39;Client has connected to the server!&#39;);
});
// 添加一个连接监听器
socket.on(&#39;message&#39;,function(data){
  console.log(&#39;Received a message from the server!&#39;,data);
});
// 添加一个关闭连接的监听器
socket.on(&#39;disconnect&#39;,function(){
  console.log(&#39;The client has disconnected!&#39;);
});
// 通过Socket发送一条消息到服务器
function sendMessageToServer(message){
  socket.send(message);
}

優勢

  • 即時雙向通訊

  • #瀏覽器本地支援良好(相容性可以用第三方函式庫很好解決)

  • 支援自訂協定

#實際應用

  • 聊天室

  • 伺服器訊息推送

  • 前後端即時系統

【相關推薦】

#1 . 

免費h5線上影片教學##2. 

HTML5 完整版手冊

3.

 php.cn原始html5影片教學

以上是什麼是Websocket?解析h5中的Websocket的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn