Переадресация соединения socket.io/engine.io на другой сервер

Мы пытаемся найти лучший подход к нашей проблеме балансировки нагрузки с помощью веб-сокетов.

Изначально Websocket может подключаться к любому серверу, на этом сервере будет работать некоторая логика, а затем, при необходимости, он будет "перенаправлять" клиента на соответствующий сервер.

Есть ли в socket.io/engine.io способ перенаправлять / пересылать соединения?

Что-то вроде:

io.use(function(socket){
    // ... logic
    if(logic === true){
        socket.redirect("172.10.10.2:3000");
    }
});

Я знаю об этом socket.redirect не является действительной функцией, но есть что-то подобное?

1 ответ

socket.io не поддерживает что-то вроде socket.redirect

Но вы можете использовать Nginx для создания прокси-сервера для балансировки нагрузки и использовать socket.io-redis для создания адаптера для socket.io и обработчика if(logic === true){} в нескольких узлах.

Другие вопросы по тегам