3

我目前在我的 app.js 文件中为 socket.io 配置了以下内容:

app
.configure(feathers.socketio(function(io){
    io.on('connection', function(socket){
        socket.emit('connect',{test: 'wow'});
        socket.on('createRecord', function(socket){
            analytics.service('record').create({type: socket.name, user: socket.interest}, function(error, user){
            });
        })
    })

}))

以上工作正常,但是有没有办法将 socket.io 逻辑与 app.js 分开,因为随着我继续添加更多的 emit 和 on 方法,它会变得非常大。我知道这可以通过将套接字对象作为参数传递到另一个文件中的模块并从那里使用它来完成。但是,我不确定如何在 feathersjs 中进行。

4

1 回答 1

3

如果我理解你正确地提取

module.exports = feathers.socketio(function(io){
    io.on('connection', function(socket){
        socket.emit('connect',{test: 'wow'});
        socket.on('createRecord', function(socket){
            analytics.service('record').create({type: socket.name, user: socket.interest}, function(error, user){
            });
        })
    })

})

./socketsConfig

var socketsConfig = require('./socketsConfig')
app.configure(socketsConfig);

将完成这项工作。

于 2015-11-15T05:22:22.293 回答