2016-04-07 3 views
0

Я пытаюсь использовать socket io на Heroku с RedisToGo. В местных условиях все в порядке.Не могу использовать socket.io с redis на Heroku

Когда я раскрываю свой код на Heroku, большую часть времени я получаю 400 Bad Request со следующими данными браузера:

{"code":1,"message":"Session ID unknown"} 

Мой Redis конфиг:

var url = "redis://redistogo:[email protected]:xxxx/"; 
var rtg = require("url").parse(url); 

var pub = redis.createClient(rtg.port, rtg.hostname, {return_buffers: true}); 
var sub = redis.createClient(rtg.port, rtg.hostname, {return_buffers: true}); 
pub.auth(rtg.auth.split(":")[1]); 
sub.auth(rtg.auth.split(":")[1]); 

var redisOptions = { 
    pubClient: pub, 
    subClient: sub, 
    host: rtg.hostname, 
    port: rtg.port 
}; 

io.adapter(ioredis(redisOptions)); 

Что это проблема?

ответ

1

Проблема была Хероку, принимающая только транспортировку в сети. Настройка переноса в websocket как на сервере, так и на клиентах решила проблему.

0

Включение сродства к сеансу на приложение Heroku должно исправить неизвестную ошибку Session ID, вы можете сделать это, запустив

heroku features:enable http-session-affinity 
Смежные вопросы