2015-06-10 2 views
1

Ниже приведено приложение app.js, настроенное для функций socket.io. Все работает так, как ожидалось, но теперь я хочу использовать эту функцию сокета, другой js-файл из того же проект, как это сделать?Использование модулей socket.io в других JS-файлах

var app = require('express')(); 
var server = require('http').Server(app); 
var io = require('socket.io')(server); 

server.listen(8080); 

app.get('/', function (req, res) { 
    res.sendfile(__dirname + '/index.html'); 
}); 

io.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    console.log(data); 
    }); 
}); 

ответ

0

Просто напишите в каждом файле, где вы хотите использовать socket.io модуль var io = require('socket.io')(server);. Если вы хотите создать разделяемую функциональность, создать еще один модуль в вашем приложении с socket.io, т.е. .:

var io = require('socket.io')(server); 

module.exports = function(options) { 
    // your code here 
} 

Если его не ответ на ваш вопрос, пожалуйста, более конкретно.

+0

Если я пишу var io = require ('socket.io') (сервер); в каждом файле, где я хочу использовать модуль socket.io Iam get ReferenceError: сервер не определен error –

+0

Ну, вы проходите переменную '(server)', поэтому вам нужно создать эту переменную точно так же, как в примере. Поэтому добавьте перед остальными требованиями (http, express). Как я уже сказал, если вы хотите, вы можете создать функцию модуля, которая вернет вам уже созданный объект socket.io. В противном случае вам нужно вставить в каждый файл все 3 оператора. EDIT: Сначала прочтите модуль node.js: https://nodejs.org/docs/latest/api/modules.html – mkatanski

Смежные вопросы