開発者が特定のアプリケーションでメッセージやイベントの送信を完全に制御したい場合、デフォルトの "/" namespaceを使用するだけで十分です。ただし、開発者が他のアプリケーションにサードパーティのサービスとしてアプリケーションを提供する必要がある場合、クライアントに接続するために使用されるソケットポートの個別の名前空間を定義する必要があります。
io.of(名前空間)
2つの名前空間を作成します
チャットとニュースは、クライアント側でお互いに情報を送信します。
コードコピーは次のとおりです。
var Express = require( "Express");
var http = require( "http");
var sio = require( "socket.io");
var app = Express();
var server = http.createserver(app);
app.get( "/"、function(req、res){
res.sendfile(__ dirname+"/index.html");
});
server.listen(1337、 "127.0.0.1"、function(){
console.log( "聞き取り1337");
});
var io = sio.listen(server);
var chart = io.of( "/chat")。
socket.send( "チャットスペースへようこそ!");
socket.on( "message"、function(msg){
console.log( "Chat namespaceが受信した情報:"+msg);
});
});
var news = io.of( "/news")。
socket.emit( "送信メッセージ"、「ニューススペースへようこそ!」);
socket.on( "メッセージの送信"、function(data){
console.log( "ニュースネームスペースは送信メッセージイベントを受け入れます。データは次のとおりです。「+データ);
});
});
コードコピーは次のとおりです。
<!doctype html>
<html>
<head lang = "en">
<メタcharset = "utf-8">
<title> </title>
<スクリプトsrc = "/socket.io/socket.io.js"> </script>
<スクリプト>
var chat = io.connect( "http:// localhost/chat")、
news = io.connect( "http:// localhost/news");
chat.on( "connect"、function(){
chat.send( "hello。");
chat.on( "message"、function(msg){
console.log( "charスペースからメッセージを受信:"+msg);
});
});
news.on( "connect"、function(){
news.emit( "送信メッセージ"、 "hello");
news.on( "メッセージの送信"、function(data){
console.log( "News NameSpaceから送信メッセージイベントを受信し、データビット:"+data);
});
});
</script>
</head>
<body>
</body>
</html>
実行結果:
socket.ioを使用してnode.jsで名前空間を作成する方法を理解しましたか?ここでの2つの例は非常にシンプルなので、自由に遊んでみましょう。