socket.write()导致我的连接提前终止

时间:2016-10-17 10:27:53

标签: javascript node.js sockets logging tcp

因此,我正在处理一些连接到a log server的代码,并以特定格式发送消息。我创建套接字,传入主机和端口号,然后我的客户端成功连接。我知道这是因为connect事件执行它的回调。但是,当我尝试写入套接字时,连接中断。知道是什么导致了这个吗?

这是我正在做的事情的片段。

function Harvester(options){
  const socket = new net.Socket();
  socket.connect({port:options.port, host:options.host}, ()=>{
    socket.write(`+node|${options.node}\r\n`);
  });
  socket.on('connect', (socket) => console.log('Connected to Log Harvester!'));
  socket.on('data', (data) => console.log('Message from Logio Server: ', data));
  socket.on('error', (error) => console.log('Error from Logio Server: ', error.message));
  socket.on('close', (error) => {
    console.log(!error ? 'Client connection closed' : 'Client connection closed with Error');
  });
  socket.on('end', () => console.log('Logio Connection Ended'));

  return {
    /**
     * Writes log to tcp socket
     * @param node
     * @param stream
     * @param level
     * @param message
     */
    log: (level, stream, message, done) => {
      socket.write(`+log|${stream}|${options.node}|${level}|${JSON.stringify(message)}\n`, function(err){
        if(err){ throw err }
        socket.end();
      });
      done(null, true);
    }
  }
}

服务器拒绝我的连接?我是否需要以某种方式保持连接Alive?

0 个答案:

没有答案