1

アプリケーションで socket.io を使用しようとしています。複数のdynoの問題を解決するには、socket.io-redisを使用する必要があることがわかりました。しかし、redis-cloud と socket.io-redis を使用しようとすると、「最大コール スタック サイズを超えました」というメッセージが表示され続けます。以下は私のコードです

io.adapter(redis({
  pubClient: require("redis").createClient(PORT, HOST, {return_buffers: true}),
  subClient: require("redis").createClient(PORT, HOST, {return_buffers: true})
}));

セッションには koa-session-redis も使用します

koa.use(session({
                  store: {
                     host: HOST,
                     port: PORT
                 }
               }))

よろしくお願いします

4

1 に答える 1

1

非常に異なる構成で同じエラーが発生したため、これは答えではないかもしれませんが、私の場合、エラーはmsgpackモジュール、msgpack.js、sizeofメソッドの 465 行目と 466 行目から発生していることがわかりました。

if('function' === typeof value.toJSON)
    return sizeof(value.toJSON());

自己参照または循環参照が存在するような方法で toJSON を実装するオブジェクトをソケットにプッシュしている可能性はありますか?

于 2015-03-07T02:44:15.260 に答える