The server and client of WebSocket
can communicate in both directions and allow cross-domain communication. Supported by theUpgrade
mechanism ofHTTP/1.1
, communicating through thews
(non-encrypted) orwss
(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'sAPI
, 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
If the client does not supportWebSocket, then there are several candidates available
Flash SocketAJAX long-polling
AJAX multipart streaming
IFrame
JSON
P polling##Method 2
Socket.ioTo smooth out the differences, this library can automatically use the message push method supported by the browser to connect when the browser does not supportWebSocket
. The library will also detect whether the connection is dropped, and Automatically reconnects for you when disconnected.// 创建Socket.IO实例,建立连接 var socket= new io.Socket('localhost',{ port: 8080, }); socket.connect(); // 添加一个连接监听器 socket.on('connect',function(){ console.log('Client has connected to the server!'); }); // 添加一个连接监听器 socket.on('message',function(data){ console.log('Received a message from the server!',data); }); // 添加一个关闭连接的监听器 socket.on('disconnect',function(){ console.log('The client has disconnected!'); }); // 通过Socket发送一条消息到服务器 function sendMessageToServer(message){ socket.send(message); }
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!