Nodejs 网络数据事件侦听器 等待正确的数据



我有一个从服务器接收定义的消息类型的 tcp 客户端 当客户端写入时,它会传递一个标识符,该标识符随来自服务器的消息一起提供以响应此消息。 数据事件侦听器应该执行以下操作

sock.on('data', function (data) {
//validate the data, check if identifier == to identifier in data
if(true){
return data
//terminate listener
}
else{
// wait for the next message
// this should also exit upon a time out and terminate listener
}
});

检查数据后,我如何等待确切的消息,因为其他侦听器将多条消息写入同一套接字。4秒后,即使套接字中的数据与标识符不匹配,我也想退出

请帮忙。

// initialize the expected  message identifier
let expected = outgoing.getMti() 
client.on('data', function (data) {
//get the message identifier from data
let incomingMTI = data.getMti()
switch(incomingMTI){
case expected:
resolve (data)
default:
if((Date.now()-start)>8000){
reject({error:'timed out'})
}
}
});

到目前为止,我认为侦听器在 8 秒后超时。 并发送错误消息。 如果你有更好的方法或看到我不满意的东西:-)

最新更新