【问题标题】:Mutliple nodejs server communicating with each other with socket.io-redis not receiving event多节点js服务器与socket.io-redis相互通信未收到事件
【发布时间】:2016-06-01 01:47:25
【问题描述】:

我设法使用 socket.io-redis 将两个 nodejs 服务器连接到 Redis。使用“redis-cli monitor”,我可以看到在 Redis 上接收到的事件,但它会一直持续下去。好像我错过了什么。

这两个服务器的样子(数字 1 和 2 颠倒了)

socket.on('action', function(data) {
    socket.broadcast.to(3).emit('toServer1', "message from server 2")
})    
socket.on('toServer2', function(msg) {
    console.log('msg', msg)
})

当事件动作被按钮触发时,这是我在 Redis 监视器上看到的内容。

1455886600.760190 [0 127.0.0.1:53659] "publish" "socket.io#/wallo#3#" "\x93\xa6zCLzS6\x83\xa4type\x02\xa4data\x92\xa9toServer2\xb5message from server 1\xa3nsp\xa6/wallo\x83\xa6except\x91\xbb/wallo#zWTx7XX3IWTwyAkgAAAD\xa5rooms\x91\x03\xa5flags\x81\xa9broadcast\xc3"

1455886611.012510 [0 127.0.0.1:53692] "publish" "socket.io#/wallo#3#" "\x93\xa602LA0x\x83\xa4type\x02\xa4data\x92\xa9toServer1\xb5message from server 2\xa3nsp\xa6/wallo\x83\xa6except\x91\xbb/wallo#Ta740dOp_limABWNAAAC\xa5rooms\x91\x03\xa5flags\x81\xa9broadcast\xc3"

他们也都订阅了正确的频道:

1455886848.742998 [0 127.0.0.1:53660] "subscribe" "socket.io#/#/#7xqLUZmHRYvy63akAAAH#"
1455886848.767710 [0 127.0.0.1:53660] "subscribe" "socket.io#/wallo#/wallo#7xqLUZmHRYvy63akAAAH#"
1455886848.809907 [0 127.0.0.1:53660] "subscribe" "socket.io#/wallo#3#"

1455886843.924659 [0 127.0.0.1:53693] "subscribe" "socket.io#/#/#7PFZsIfHabXD9rKnAAAD#"
1455886843.946771 [0 127.0.0.1:53693] "subscribe" "socket.io#/wallo#/wallo#7PFZsIfHabXD9rKnAAAD#"
1455886843.960910 [0 127.0.0.1:53693] "subscribe" "socket.io#/wallo#3#"

我错过了什么吗?从 redis 获取/接收事件是否还有其他事情要做?

【问题讨论】:

    标签: node.js sockets redis socket.io-redis


    【解决方案1】:

    好的...我想通了。

    我想在客户端而不是服务器端捕获事件。 我不知道以前版本的 socket.io-redis 是否有所不同,但由于某种原因,我记得在服务器上接收到事件。

    【讨论】:

      猜你喜欢
      • 2015-05-20
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 2011-09-23
      • 2019-06-26
      • 2020-08-05
      • 1970-01-01
      • 2011-11-28
      相关资源
      最近更新 更多