【发布时间】:2016-07-31 22:46:32
【问题描述】:
我在一个文件中有一个 express 模块来注册用户名,在另一个文件中有一个 socket.io 模块来创建聊天。将用户名发送到套接字模块的最佳方式可能是什么?
server.js
var express = require('express');
app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var morgan = require('morgan');
var wagner = require('wagner-core');
var bodyParser = require('body-parser');
var port = process.env.PORT || 8080;
var name = [];
app.use(morgan('dev'));
app.use(express.static('public'));
app.use(bodyParser.urlencoded({'extended':'true'})); // parse application/x-www-form-urlencoded
app.use(bodyParser.json()); // parse application/json
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json
var dependencies = require("./app/dependencies.js")(wagner);
require('./app/routes.js')(app,wagner);
require('./app/socketio.js')(io,wagner);
http.listen(port,function(){
console.log('listening on *:'+port);
});
./app/routes.js
module.exports = function(app,wagner) {
// api ------------------------------------------------------------------
app.post('/api/user', function(req, res) {
console.log(req.body);
// name.push(req.body.name);
res.json({ message: 'from post' });
wagner.invoke(function (UserName){
UserName = "mjt";
});
});
};
./app/socketio.js
module.exports = function (io,wagner) {
io.on('connection', function(socket){
var userName = wagner.invoke(function(UserName) {
console.log(UserName);
});
console.log('a user connected');
io.emit('user connected', "connected");
socket.on('chat message', function(msg) {
console.log('message: ' + msg);
io.emit('chat message', msg);
});
socket.on('disconnect',function () {
console.log('user disconnect');
io.emit('user disconnected', "disconnected");
});
});
}
【问题讨论】:
标签: javascript node.js sockets