Mutliple nodejs服务器相互通信,socket.io-redis没有接收到事件

时间:2016-02-19 13:08:16

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

我设法使用socket.io-redis将两个nodejs服务器连接到Redis。使用“redis-cli监视器”,我可以看到在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获取/接收事件还有什么需要做的吗?

1 个答案:

答案 0 :(得分:0)

好的......我明白了。

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