Heim > Web-Frontend > H5-Tutorial > Hauptteil

Was ist WebSocket? Vertiefendes Verständnis von WebSocket in HTML5

零下一度
Freigeben: 2017-05-08 13:46:08
Original
2130 Leute haben es durchsucht

Was ist WebSocket?

WebSocketDer Server und der Client können in beide Richtungen kommunizieren und eine domänenübergreifende Kommunikation ermöglichen. Unterstützt durch den HTTP/1.1-Mechanismus von Upgrade, Kommunikation über ws (unverschlüsselt) oder wss (verschlüsselt) Protokolle

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

WebSocket WebSocket(
  in DOMString url,
  in optional DOMString[] protocols
);
Nach dem Login kopieren

WebSocket in HTML5

HTML5Konzentrieren Sie sich nur auf den Kunden<a href="http://www.php.cn/js/js-weixinapp-api.html" target="_blank">API<code><a href="http://www.php.cn/js/js-weixinapp-api.html" target="_blank">API</a> und auf der Serverseite implementiert jede Sprache das Ereignis

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


onclose onerror onmessage onopen

Attribute

  • readyState: CONNECTING 0 OPEN 1 CLOSING 2 CLOSED 3

  • binaryType: String Blob <a href="http://www.php.cn/wiki/58.html" target="_blank"> Array<code><a href="http://www.php.cn/wiki/58.html" target="_blank">Array</a>BufferPuffer

Kompatibilität

Methode 1:
Wenn der Client WebSocket nicht unterstützt, dann Sie kann mehrere Kandidatenoptionen verwenden Flash Socket AJAX long-polling AJAX multipart streaming IFrame <a href="http://www.php.cn/wiki/1488.html" target="_blank">JSON <code><a href="http://www.php.cn/wiki/1488.html" target="_blank">JSON</a>P pollingP-Abfrage

Methode 2
Verwenden Sie Socket.io, um die Unterschiede auszugleichen. Diese Bibliothek kann den Browser automatisch abfragen, wenn der Browser WebSocket nicht unterstützt Verwenden Sie zum Herstellen der Verbindung die vom Browser unterstützte Push-Nachrichtenmethode. Die Bibliothek erkennt auch, ob die Verbindung unterbrochen wurde, und stellt automatisch die Verbindung wieder her, wenn sie unterbrochen wird.

// 创建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);
}
Nach dem Login kopieren

Vorteile

  • Zwei-Wege-Kommunikation in Echtzeit

  • Die native Unterstützung des Browsers ist gut (Kompatibilität kann genutzt werden). Bibliotheken von Drittanbietern (Sehr einfach zu lösen)

  • Unterstützung benutzerdefinierter Protokolle

Praktische Anwendung

  • Chatroom

  • Server-Nachrichten-Push

  • Front-End- und Back-End-Echtzeitsystem

Referenz

  • Websocket | ]

  • 1.
  • Kostenloses h5-Online-Video-Tutorial

  • 2.
HTML5-Vollversionshandbuch

3 .cn Original-HTML5-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist WebSocket? Vertiefendes Verständnis von WebSocket in HTML5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage