如何在Nodejs中保存连接套接字以后写入? [重复]

问题描述 投票:1回答:1

这个问题在这里已有答案:

我试图在成功连接后保持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');
}

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

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

谢谢。

javascript node.js sockets networking communication
1个回答
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);

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

© www.soinside.com 2019 - 2024. All rights reserved.