2017-04-17 18 views
0

2 socket.ioの接続を制御します。私は2つのsocket.ioファイルで機能を分けていきたいと思います。私は、ユーザーの2種類がありアプリに取り組んでいます

index.js:

var io = require('socket.io').listen(server); 
require('/sockets/userType1')(io); 
require('/sockets/userType2')(io); 

userType1.js:

module.exports = function (io) { 
    io.on("connection", function (socket) { 
     console.log("Connected to userType1"); 
    }); 
} 

userType2.js

module.exports = function (io) { 
    io.on("connection", function (socket) { 
     console.log("Connected to userType2"); 
    }); 
} 

Iは、クライアント側から接続したときしかし、双方に接続(これ私は、私が接続しようとしているものを区別する何も持っていないので、私は期待するだろうと思う)。

への接続を定義する方法はのみsocket.ioクラスの1つに接続してありますか?または命名規則に頼るだけでいいですか?

+1

[名前空間](https://socket.io/docsを見てみましょう/部屋と名前空間/#名前空間)。私は – robertklep

+0

おかげ@robertklepのthatsあなたが同じWebサーバーに取り付けられた2台の別々のsocket.ioサーバを持つことはできません。このようにすることはできません。クライアントの要求が他と区別できないため、すべての着信要求が表示されます。新しいポート上に新しいWebサーバーを作成し、接続の1つのために別のポートに接続するか、socket.ioサーバーで提案されているwoodsyのような別のsocket.io名前空間を使用する必要があります。 – Woodsy

+0

探していたまさに – jfriend00

答えて

1

Socket.io NAMESPACES

userType1.js:

module.exports = function (io) { 
    var nsp = io.of('/userType1'); 
    nsp.on("connection", function (socket) { 
     console.log("Connected to userType1"); 
    }); 
} 

userType2.js

module.exports = function (io) { 
    var nsp = io.of('/userType2'); 
    nsp.on("connection", function (socket) { 
     console.log("Connected to userType2"); 
    }); 
} 

userTypeALLUSERS:

module.exports = function (io) { 
    io.on("connection", function (socket) { 
     console.log("Connected to ALL USERS"); 
    }); 
} 

クライアント側(usertype2用) :

var socket = io('/userType2'); 

サーバーコンソール:

userType2

に接続

すべてのユーザーに接続し