私は少し混乱しています。NodeJS、socketIO、複数のファイル
NodeJSアプリでsocketIOを使いたいです。 は、私は、この(擬似)コードを作成しました:
//server.js
var app = express();
//some code...
var router = require('./app/router');
app.use(router);
var server = app.listen(appConfig.app.port, function() {
var port = server.address().port;
});
var io = require('socket.io')(server);
io.on('connection', function (client) {
console.log('Client connected...');
client.on('join', function (data) {
console.log(data);
});
});
//client.js
var socket = io.connect('http://localhost:5555');
socket.on('connect', function(data) {
socket.emit('join', 'Hello World from client');
});
すべてが正常です。しかし!
今、別のファイルでイベントを発行したいと思います。 ルータとPOSTリクエストがあります。私はPOSTリクエスト(リクエストハンドラは別のファイルにある)でイベントを出したい。
//router.js
router.route("/addmenu").post(function (req, res) {
menuModel.addMenu(req.body,function(data){
//I WANT EMIT HERE
res.json(data)
});
};
);
サーバを起動する前にルータを初期化する必要がありますが、サーバをIOに渡す必要があります。どのようにIOをルータに渡すのですか?
あなたのルートコールバックから、接続されているすべてのクライアントにイベントを発するようにしたいですか? – jahnestacado