0

我设法使用 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获取/接收事件还有其他事情要做吗?

4

1 回答 1

0

好吧...我想通了。

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

于 2016-02-22T10:22:55.457 回答