Sander_Li
@Sander_Li
Backend developer

Как лучше в expres.js передать объект?

День добрый! Необходимо проверять подписку subscribe на redis в разных частях приложения. Как лучше это реализовать? Стоит ли использовать Dependency Injection?
Код выглядит так
var redis = require("redis");
    var server = require('http').Server(app);
    var io = require('socket.io')(server);
    server.listen(3001);

    io.on('connection', function (socket) {
        const subscribe = redis.createClient();

        subscribe.subscribe('cool ch');
        subscribe.on("message", function (channel, message) {
            socket.emit('cool ch', message);
        });

        socket.on('message', function (msg) {
        });

        socket.on('disconnect', function () {
            subscribe.quit();
        });

    });

А примерно так выглядит код в другой части приложения.
subscribe.on("subscribe", function (channel, count) {
           redisClient.publish('cool ch', "I am sending a message.");
 });

Но для того что бы он работал, нужно как-то передать объект subscribe
  • Вопрос задан
  • 2519 просмотров
Решения вопроса 1
lexxpavlov
@lexxpavlov
Программист, преподаватель
У вас много разных этих subscribe? На каждого клиента создаётся отдельный?
Может, лучше оттуда передать объект subscribe в инициализацию io?
Или не передавать, а на месте создать новый subscribe. Это же Redis - подсоединяйся к каналу и слушай.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект