2016-04-07 15 views
0

Ich versuche Socket io auf Heroku mit RedisToGo zu verwenden. In der lokalen Umgebung ist alles in Ordnung.Kann socket.io nicht mit redis auf Heroku verwenden

Wenn ich meinen Code zum Heroku bereitstellen, ich die meiste Zeit Bad Request bin immer 400 mit folgenden Daten aus dem Browser:

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

Meine redis config:

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)); 

Was ist das Problem?

Antwort

1

Das Problem war Heroku akzeptieren nur Websocket-Transport. Das Setzen von Transporten auf Websocket sowohl auf dem Server als auch auf den Clients hat das Problem gelöst.

0

Aktivieren der Sitzungsaffinität auf der Heroku App sollte die Session ID unbekannt Fehler beheben, können Sie dies tun, indem

heroku features:enable http-session-affinity 
läuft
Verwandte Themen