gpt4 book ai didi

session - 由于 session 存储,很可能无法在本地扩展 socket.io

转载 作者:可可西里 更新时间:2023-11-01 11:23:00 31 4
gpt4 key购买 nike

我有一个主进程,它派生了 socket.io 服务器所有使用集群模块的 worker,当然还有 socket.io。

问题是,除非我特别说明我只需要一名 worker ,否则我的代码将无法正常工作。我在集群模块存在之前就写了它,它作为单个进程运行良好,现在看来也一样。

当它使用 RedisStore 作为 session 存储 fork 4 个 worker(cpu 核心数)时会发生什么:

node_redis: no callback to send error: Error: ERR wrong number of arguments for 'hset' command
Caught exception: Error: Error: ERR wrong number of arguments for 'hset' command

如果我使用默认的 MemoryStore,在 socket.io 日志上它会不断重复

   debug - cleared close timeout for client 3883988821204831830
debug - discarding transport
debug - client authorized
info - handshake authorized 12039436321106971132
debug - xhr-polling received data packet �43�5:::{"name":"estimatepp","args":[70821530]}�20�5:::{"name":"ready"}
debug - setting request GET /socket.io/1/xhr-polling/217474157959916242?t=1328357263590
debug - setting poll timeout
debug - clearing poll timeout
debug - xhr-polling writing 7:::1+0
debug - set close timeout for client 217474157959916242
warn - client not handshaken client should reconnect
info - transport end

并且在客户端(浏览器)记录它产生了一个奇怪的错误:

Uncaught TypeError: Property 'open' of object #<c> is not a function
handshake.c.sessionidsocket.io.js:2
d.ready

RedisStore 不会发生客户端的错误,并且只有一个工作人员不会发生任何错误。我有充分的证据相信 wrong number of arguments for 'hset' 错误出现在 socket.io 的 RedisStore 代码中,因为我在我的代码中根本没有使用任何 hset,而且它再次出现MemoryStore 不会发生...

你认为这是怎么回事?这值得向 socket.io 人员报告吗?

最佳答案

我有类似的问题...虽然我没有在客户端出现任何错误,尤其是在 Android 设备上—— WebView 和 native 浏览器。在我的例子中,我在传输的数据中使用 UTF-8 编码。我发现的是当我发出任何西里尔文本/数据时,消息被正确发送,但是,在那之后,传输立即被丢弃:

   debug - set close timeout for client 8983972932106614064
debug - discarding transport
debug - cleared close timeout for client 8983972932106614064
debug - xhr-polling received data packet �88�5:::...

我认为这很有可能是REDIS store的问题。

顺便说一句,如果你注意到 xhr-polling 收到的数据包,redis 存储(我相信)会发送另一个请求,命名为“就绪”...同样在这里...我在阻塞请求之后有两个请求和同样的问题...

关于session - 由于 session 存储,很可能无法在本地扩展 socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9140771/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com