2015-05-20 5 views
1

Я прочитал много нового о кастинге, redis, но я не смог найти ни одного реального образца.Как масштабировать приложение socket.io на нескольких серверах?

У меня есть простое приложение socket.io, и мне нужно масштабировать это приложение на многих серверах.

Похоже, что socket.io и RedisStore - это решение.

Есть ли у кого-нибудь реальный мир, как он использует socket.io на многих серверах?

ответ

2

Необходимо npm install пакет socket.io-redis. Затем запустите сервер командой redis-server. Добавьте в свой код следующие строки.

var io = require('socket.io')(3000); 
var redis = require('socket.io-redis'); 
io.adapter(redis({ host: 'localhost', port: 6379 })); 

Затем вам нужно изменить файл конфигурации Nginx для включения балансировки нагрузки как, http://socket.io/docs/using-multiple-nodes/#nginx-configuration

upstream io_nodes { 
    ip_hash; 
    server 127.0.0.1:6001; 
    server 127.0.0.1:6002; 
    server 127.0.0.1:6003; 
    server 127.0.0.1:6004; 
} 

Перезапустите сервер Nginx, а затем запустить сервер узла. Это также должно масштабировать ваш сервер.

+0

Извините, но я не очень хорошо понимаю: похоже, что вы загружаете баланс на SAME server (127.0.0.1), тогда как цель - масштабировать socket.io на серверах MULTIPLE. – yarek

+0

См. Эту ссылку. Это должно помочь. http://www.ranu.com.ar/2011/11/redisstore-and-rooms-with-socketio.html –

+0

Это всего лишь 1 образец сервера – yarek

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