socket.ioを使用して、socket.ioサーバーを作成します。ただし、サーバーはすでに作成されているHTTPサーバーに依存します。
HTTPサーバーが実行されている後、socket.ioサーバーをHTTPサーバーに添付するには、聞きた方法を使用します。
コードコピーは次のとおりです。
var sio = require( "scoket.io");
var socket = sio.listen(server);
Socketは、サーバーで作成されたSocket.ioサーバーです。
クライアントがサーバーとの接続を確立すると、socket.ioサービスの接続イベントがトリガーされます。
コードコピーは次のとおりです。
socket.on( "connection"、function(socket){
});
コールバック関数のソケットパラメーターは、サーバーとクライアント間の接続を確立するソケットポートオブジェクトです。
クライアントから送信されたメッセージが受信されると、ソケットポートオブジェクトのメッセージイベントが発行されます。
コードコピーは次のとおりです。
socket.on( "message"、function(msg){
});
コールバック関数のパラメーターは、クライアントから送信されたメッセージです。
Socket.send(MSG)を使用して、クライアントにメッセージを送信できます。
切断イベントは、サーバー側のクライアント側の接続が切断されたときにトリガーされます。
コードコピーは次のとおりです。
socket.on( "disconnect"、funciton(){
});
このコールバック関数は、パラメーターを適用しません。
サーバーサイドServer.jsコード:
コードコピーは次のとおりです。
var http = require( "http");
var sio = require( "socket.io");
var fs = require( "fs");
var server = http.createserver(function(req、res){
res.writehead(200、{"content-type": "text/html"});
res.End(fs.readfilesync( "./ index.html"));
});
server.listen(1337);
var socket = sio.listen(server);
socket.on( "connection"、function(socket){
console.log( "クライアント接続確立");
socket.send( "hello");
socket.on( "message"、function(msg){
console.log( "メッセージを受信:"+msg);
});
socket.on( "disconnect"、function(){
console.log( "client disconnect。");
});
});
クライアントindex.htmlコードを作成します:
コードコピーは次のとおりです。
<!doctype html>
<html>
<head lang = "en">
<メタcharset = "utf-8">
<title> </title>
<スクリプトsrc = "/socket.io/socket.io.js"> </script>
<スクリプト>
var socket = io.connect();
socket.on( "message"、function(data){
console.log(data);
socket.send( "メッセージが受け入れられた。")
});
socket.on( "disconnect"、function(){
console.log( "Server Side disconnect。");
});
</script>
</head>
<body>
</body>
</html>
このコード:/socket.io/socket.io.jsには、サーバーサイドのsocket.ioクラスライブラリが提供されており、実際にsocket.io.jsファイルをクライアントに配置する必要はありません。
スクリプトファイルで、最初にio.connect()メソッドを使用して、サーバーsocket.ioサーバーに接続します。
このメソッドは、サーバーへの接続を確立するクライアントソケットポートオブジェクトを返します。
サーバーからメッセージが受信されると、クライアントソケットポートオブジェクトのメッセージイベントがトリガーされます。
コードコピーは次のとおりです。
socket.on( "message"、function(msg){
});
MSGはサーバーから送信されたデータです。
クライアントソケットオブジェクトのsend()メソッドを使用して、サーバーにデータを送信することもできます。
コードコピーは次のとおりです。
socket.send(msg);
サーバーが切断されると、クライアントソケットポートオブジェクトの切断イベントがトリガーされます。
コードコピーは次のとおりです。
socket.on( "disconnect"、function(){
})
このコールバック関数は、パラメーターを使用しません。
知らせ:
クライアントのメッセージメカニズムは、サーバー側のメッセージ処理メカニズムとまったく同じです。 Socket.ioは、クライアントとサーバーが同じAPIを共有することを保証するためです。
実行後の結果:
ブラウザが閉じられると、サーバーへの接続が切断されます。この時点で、サーバーは切断イベントをトリガーし、クライアントが切断されます。