@neodekvat09

Как интегрировать socket.io в express-generator?

Здравствуйте, недавно написал чат на socket.io и локальном сервере express'a 4. Кода не особо много, пока лишь он в двух файлах (client.js, server.js), хочется попробовать пустить в полноценный продакшен (для практики), но для этого нужны роуты и т.п. А значит и полноценный express, использовал express-generator, и... Никак не получается подключить socket.io. Гуглил, но ответы не все помогают, да и, в большинстве случаев, они индивидуальны.

Как я понял, вся проблема в директории, точнее самом файле /bin/www. Через неё надо подключать socket.io... Пока что всё в это и упирается.

У кого есть опыт, подскажите, от продакшена лишь эта проблема и отделяет :'(
  • Вопрос задан
  • 1754 просмотра
Решения вопроса 1
@Aves
Да много разных способов можно придумать, например в app.js добавить
app.io = function(server) {
    var io = require('socket.io')(server);
    io.on('connection', function (socket) {
        //...
    });
}

А в bin/www app.io(server);

Или выделить обработчик в отдельный модуль
// routes/socket.js
function handler(socket) {
    // ...
}

module.exports = handler;

// app.js
var io = require('socket.io');
var socket = require('./routes/socket');

app.io = function(server) {
    io(server).on('connection', socket);
};

// bin/www
app.io(server);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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