IORedis或(node
当使用Redis的客户端(ioredis或node_redis)在应用程序的NodeJS的WebSocket的消息事件中,任何命令回调不会立即解雇。 (操作确实需要Redis的服务器上进行,虽然)
令人感到奇怪的是,第一个命令回调将火灾发生后我发了第二条消息,而对于第二个会火回调后我送的三分之一。
wss.on('connection', (socket, request) => {
socket.on('message', (data) => {
console.log("will send test command")
this.pubClient.hset("test10", "f1","v1", (err,value) => {
//callback not firing first time
console.log("test command reply received")
})
})
}
Redis的命令正在按预期虽然在应用中的其他部分,甚至内部的上直接连接像下面时。
wss.on('connection', (socket, request) => {
console.log("will send test command")
this.pubClient.hset("test10", "f1","v1", (err,value) => {
//callback fires
console.log("test command reply received")
})
socket.on('message', (data) => {})
}
更新:
我有这个完全错误的。究其原因,奇怪的回调行为是一个我自定义的Redis模块没有返回答复的结果。而这似乎造成此调用毕竟回调似乎有某种一步延迟。
回答如下:我有这个完全错误的。究其原因,奇怪的回调行为是一个我自定义的Redis模块没有返回答复的结果。而这似乎造成此调用毕竟回调似乎有某种一步延迟。