html5 - express4 + socket.io 如何在connection的回调外边使用socket.emit方法
ringa_lee
ringa_lee 2017-04-17 16:09:00
0
5
591

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的回调里..

ringa_lee
ringa_lee

ringa_lee

全部回覆(5)
黄舟

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寫業務邏輯

巴扎黑

我也遇到這個問題,求解

大家讲道理

我也覺得外部呼叫socket没什么意义。。
而且expresssocket两者走的协议都不一样,
你可以把user的身份信息保存在 局部变量socket的作用域內
透過識別資訊來執行對應使用者的操作

大家讲道理

同求解,怎麼把那個socket物件暴露出去? ? ? ?

巴扎黑

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板