2015-11-15 3 views
2

я в настоящее время имею следующие конфигурации для Socket.io в моем app.js файл:, разделяющий Socket.io логик от app.js в feathersjs

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 и методов. Я знаю, что это можно сделать, передав объект сокета в качестве аргумента в модуль в другом файле и используя его оттуда. Однако я не уверен, как это сделать в feathersjs.

ответ

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); 

будет делать эту работу.