我设法使用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获取/接收事件还有什么需要做的吗?
答案 0 :(得分:0)
好的......我明白了。
我想在客户端而不是服务器端捕获事件。 我不知道socket.io-redis的先前版本是否有所不同,但出于某种原因,我有记忆在服务器上接收事件。