我有一个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秒后我想退出,即使套接字中的数据与标识符
不匹配请帮忙。
答案 0 :(得分:0)
// 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秒后超时。并发送错误消息。 如果你有更好的方式或看到我不喜欢的东西: - )