【问题标题】:How Do I Save The Connection Socket Writing Later In Nodejs? [duplicate]Nodejs中如何保存稍后编写的连接套接字? [复制]
【发布时间】:2018-08-30 17:45:14
【问题描述】:

我试图在成功连接后保持 tcp 套接字打开,以便稍后通过它写一些东西。这是我的尝试:

var sock = null;

var server = require('net').createServer( function (socket) {
  sock = socket;

  socket.on('data', function (data) {
    console.log(data.toString());
  });

});

server.listen(10005);


if (sock != null) {
  sock.write('command', 'utf-8');
else {
  console.log('sock is null');
}

我没有意识到它是异步的,所以对 sock 的 null 检查首先发生在 connectionCallback 之前。我来自 C++ 背景,所以这就是我被训练以编程方式思考的方式。在 javascript 中执行此操作的正确方法是什么?

我希望用户能够通过连接套接字写入数据。我想重用已成功连接写入的同一个套接字。

谢谢。

【问题讨论】:

    标签: javascript node.js sockets networking communication


    【解决方案1】:

    我不会将socket 存储在变量中,而是编写一个函数来处理创建套接字时将调用的写入。像这样的:

    function handleSocket(socket) {
      socket.write('command', 'utf-8')
    }
    
    var server = require('net').createServer(function (socket) {
      socket.on('data', function (data) {
        console.log(data.toString());
      });
    
      handleSocket(socket);
    });
    
    server.listen(10005);
    

    我不确定你还想对套接字做什么,但模式是一样的——你得到一些数据并有条件地调用一些回调。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 2019-02-28
      • 2014-01-26
      • 1970-01-01
      相关资源
      最近更新 更多