Nodejs Net Data事件监听器等待正确的数据

时间:2017-08-28 13:37:52

标签: node.js tcpclient tcpserver

我有一个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秒后我想退出,即使套接字中的数据与标识符

不匹配

请帮忙。

1 个答案:

答案 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秒后超时。并发送错误消息。 如果你有更好的方式或看到我不喜欢的东西: - )