我正在尝试在Heroku上使用Socket IO和Redistogo。在当地环境下,一切都很好。
当我将代码部署到heroku时,大多数情况下,我会收到400个来自浏览器的错误请求,其中包含以下数据:

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

怎么了?

最佳答案

问题是heroku只接受websocket传输。在服务器和客户机中设置到websocket的传输解决了这个问题。

关于heroku - 不能在Heroku上使用带有redis的socket.io,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36481452/

10-15 09:42