ホームページ  >  記事  >  ウェブフロントエンド  >  node.js_node.jsでsocket.ioを使用する方法

node.js_node.jsでsocket.ioを使用する方法

WBOY
WBOYオリジナル
2016-05-16 16:26:561450ブラウズ

socket.io サーバーを作成するには、socket.io を使用します。ただし、このサーバーは、すでに作成されている http サーバーに依存します。

http サーバーが実行されたら、listen メソッドを使用して、socket.io サーバーを http サーバーに接続します。

コードをコピーします コードは次のとおりです:

var sio=require("scoket.io");
varソケット=sio.listen(サーバー);

ソケットは、サーバーに基づいて作成されたsocket.ioサーバーです。

クライアントがサーバーとの接続を確立すると、socket.io サービスの接続イベントがトリガーされます。

コードをコピーします コードは次のとおりです:

socket.on("接続",function(ソケット){
});

コールバック関数のソケット パラメータは、サーバーとクライアント間の接続を確立するために使用されるソケット ポート オブジェクトです。

クライアントから送信されたメッセージを受信すると、ソケットポートオブジェクトのメッセージイベントが発行されます。

コードをコピーします コードは次のとおりです:

ソケット.on("メッセージ",function(msg){
});

コールバック関数のパラメータは、クライアントによって送信されたメッセージです。

socket.send(msg) を使用して、クライアントにメッセージを送信できます。

サーバーとクライアント間の接続が切断されると、切断イベントがトリガーされます。

コードをコピーします コードは次のとおりです:

socket.on("切断", 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,{"コンテンツタイプ":"text/html"});
res.end(fs.readFileSync("./index.html"));
});
サーバー.listen(1337);
varソケット=sio.listen(サーバー);
socket.on("接続", 関数 (ソケット) {
console.log("クライアントが接続を確立します");
socket.send("こんにちは");
ソケット.on("メッセージ", 関数 (msg) {
console.log("メッセージを受信しました:" msg);
});
socket.on("切断", function () {
console.log("クライアントが切断されました。");
});
});

クライアントのindex.htmlコードを作成します:

コードをコピーします コードは次のとおりです:






<スクリプト src="/socket.io/socket.io.js">
<スクリプト>
varソケット=io.connect();
socket.on("メッセージ", 関数 (データ) {
console.log(データ);
socket.send("メッセージを受信しました。")
});
ソケット.on("切断", function () {
console.log("サーバー側が切断されました。");
});





このコード:/socket.io/socket.io.js はサーバー側のソケット.io クラス ライブラリによって提供され、クライアント側に実際にソケット.io.js ファイルを配置する必要はありません。

スクリプト ファイルでは、まず io.connect() メソッドを使用してサーバー側のソケット.io サーバーに接続します。

このメソッドは、サーバーとの接続を確立するクライアント ソケット ポート オブジェクトを返します。

サーバーによって送信されたメッセージが受信されると、クライアントのソケット ポート オブジェクトのメッセージ イベントがトリガーされます。

コードをコピーします コードは次のとおりです:

ソケット.on("メッセージ",function(msg){
});

msg はサーバーによって送信されたデータです。

クライアントのソケット オブジェクトの send() メソッドを使用して、サーバーにデータを送信することもできます。

コードをコピーします コードは次のとおりです:

ソケット.send(msg);

サーバーが切断されると、クライアントのソケット ポート オブジェクトの切断イベントがトリガーされます。

コードをコピーします コードは次のとおりです:

ソケット.on("切断",function(){
})

このコールバック関数はパラメータを使用しません。

注:

socket.io ではクライアントとサーバーが同じ API を共有するため、クライアントのメッセージ メカニズムはサーバーのメッセージ処理メカニズムと完全に一致しています。

実行後の結果:

ブラウザを閉じると、サーバーとの接続が切断されます。このとき、サーバーは切断イベントをトリガーし、クライアントは切断されます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。