The server and client of WebSocket
can communicate in both directions and allow cross-domain communication. Supported by the Upgrade
mechanism of HTTP/1.1
, communicating through the ws
(non-encrypted) or wss
(encrypted) protocol
WebSocket WebSocket( in DOMString url, in optional DOMString protocols ); WebSocket WebSocket( in DOMString url, in optional DOMString[] protocols );
HTML5
only focuses on the client's <a href="http://www.php.cn/js/js-weixinapp-api.html" target="_blank">API</a>
, while the server side is Each language implements
// 创建一个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() };
eventonclose
onerror
onmessage
onopen
##readyState:
CONNECTING 0
OPEN 1
CLOSING 2
CLOSED 3
: String
Blob
Array
Buffer<a href="http://www.php.cn/wiki/58.html" target="_blank"></a>
If the client does not support WebSocket, then there are several candidates available
Flash Socket
AJAX long-polling
AJAX multipart streaming
IFrame
JSON
P polling<a href="http://www.php.cn/wiki/1488.html" target="_blank"></a>##Method 2
Socket.io To smooth out the differences, this library can automatically use the message push method supported by the browser to connect when the browser does not support WebSocket
. The library will also detect whether the connection is dropped, and Automatically reconnects for you when disconnected. <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false;">// 创建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);
}</pre><div class="contentsignin">Copy after login</div></div>Advantages<code>
The browser has good local support (the compatibility can be used with third-party libraries) Solution)
Support custom protocol
Practical application
Server message push
Front-end and back-end real-time system
Reference
Get to know HTML5 WebSocket
[Related recommendations]
3. php.cn original html5 video tutorial
The above is the detailed content of What is WebSocket? In-depth understanding of WebSocket in html5. For more information, please follow other related articles on the PHP Chinese website!