WebSocket
のサーバーとクライアントは双方向に通信でき、クロスドメイン通信が可能です。 HTTP/1.1
の Upgrade
メカニズムにより、ws
(非暗号化) または wss
(暗号化) 経由でサポートされます。 ) プロトコル通信WebSocket WebSocket( in DOMString url, in optional DOMString protocols ); WebSocket WebSocket( in DOMString url, in optional DOMString[] protocols );
HTML5 の WebSocketWebSocket
的服务端和客户端可以双向进行通讯,并且允许跨域通讯。由HTTP/1.1
的Upgrade
机制支持,通过ws
(非加密)或wss
(加密)协议进行通讯
// 创建一个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() };
HTML5
只专注于客户端的<a href="//m.sbmmt.com/js/js-weixinapp-api.html" target="_blank">API</a>
, 而服务器端是各个语言自己去实现
// 创建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); }
事件onclose
onerror
onmessage
onopen
readyState
: CONNECTING 0
OPEN 1
CLOSING 2
CLOSED 3
binaryType
: String
Blob
<a href="//m.sbmmt.com/wiki/58.html" target="_blank">Array</a>Buffer
方法1:
如果客户端不支持WebSocket
, 那么可以使用几个候选选项 Flash Socket
AJAX long-polling
AJAX multipart streaming
IFrame
<a href="//m.sbmmt.com/wiki/1488.html" target="_blank">JSON</a>P polling
方法2
使用Socket.io
来抹平差异,该库可以在浏览器不支持WebSocket
HTML5
のみに焦点を当てていますサーバー側の顧客 <a href="//m.sbmmt.com/js/js-weixinapp-api.html" target="_blank">API</a>
onclose
onerror
onmessage
onopen
readyState
: CONNECTING 0
オープン 1
CLOSING 2 CLOSED 3
binaryType
: String
Blob <code>配列<h3>バッファ</h3>
互換性
WebSocket
をサポートしていない場合は、いくつかの代替手段があります Flash Socket
AJAX ロングポーリング
AJAX マルチパート ストリーミング
IFrame
<a href="//m.sbmmt.com/wiki/1488.html" target="_blank">JSON<li> P ポーリング code><p></p>
<strong>方法 2</strong><br><code>Socket.io
を使用して差異を平滑化します。このライブラリは、ブラウザが WebSocket 時に、ブラウザーでサポートされているメッセージ プッシュ メソッドを使用して自動的に接続します。また、ライブラリは接続が切断されたかどうかを検出し、切断された場合は自動的に再接続します。 rrreee以上がWebSocketとは何ですか? html5 の WebSocket についての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。