app.js
var sockect = require('./socket/server')
var users = require('../router/users')
app.use('/users', users); //路由
var server = app.listen(9000, function () {
console.log('server start');
});
sockect(server); //启动socket
server.js
'use strict';
module.exports = function(server) {
var io = require('socket.io').listen(server);
io.sockets.on('connection', function (socket) {
//如何将这里的socket暴露给其他地方的js方法里使用socket.emit ?
});
return io;
};
上面是我目前的结构,希望在users里面的逻辑里触发emit方法,google了很多,也没有找到有什么办法可以将参数socket传递出去,不然的话所有逻辑只要涉及到socket.emit的都要写在connection的回调里..
黄舟2017-04-17 16:11:00
server.js檔案中:
var users = require('../router/users')
module.exports = function(server) {
var io = require('socket.io').listen(server);
io.sockets.on('connection', function (socket) {
//如何将这里的socket暴露给其他地方的js方法里使用socket.emit ?
users.doSomething(socket);
});
return io;
};
然後在users.js寫業務邏輯
大家讲道理2017-04-17 16:11:00
我也覺得外部呼叫socket
没什么意义。。
而且express
和socket
两者走的协议都不一样,
你可以把user
的身份信息保存在 局部变量socket
的作用域內
透過識別資訊來執行對應使用者的操作