chuikoffru
@chuikoffru
Full Stack JS Developer

Почему не работает socket.io?

День добрый!

Есть несколько вопросов, по теме.
1. Как правильно вынести сокеты в отдельный файл на сервере?
2. Как использовать сокеты в других скриптах?
Вот серверная часть:

var express = require('express'),
    app = module.exports.app = express();

var server = http.createServer(app);
var io = require('socket.io').listen(server);

//var socket = require('./libs/sockets')(app);

io.sockets.on('connection', function(socket){
    
    socket.on('connect', function(data){
        console.log(data);
    });
    
    socket.emit('auth', {hello : 'world222'});
});


Мне нужно вынести все on, emit в отдельный файл подключаемый require, но не знаю как это правильно сделать. С учетом того, что я потом хочу в левом файле passport.js, при срабатывании события, вызывать какой либо socket.emit на клиент.
  • Вопрос задан
  • 1503 просмотра
Решения вопроса 1
Kotofey
@Kotofey
app.js:
var express = require('express'),
    app = module.exports.app = express();

var server = http.createServer(app);
var socket = require('./libs/sockets')(server);
app.set('socket', socket); // для обращения к сокетам из, например, passport.js


libs/sockets/index.js:
module.exports = function(server) {

    var io = require('socket.io')(server);
    io.sockets.on('connection', function(socket){
    
        socket.on('connect', function(data){
            console.log(data);
        });
    
        socket.emit('auth', {hello : 'world222'});
    });

    return io;
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы