Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有持久连接的节点js中的TCP套接字服务器_Javascript_Node.js_Sockets_Socket.io - Fatal编程技术网

Javascript 具有持久连接的节点js中的TCP套接字服务器

Javascript 具有持久连接的节点js中的TCP套接字服务器,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,我在NodeJS中创建了一个套接字服务器,在这里我可以发送一些数据并从服务器接收数据,但问题是每次连接关闭时,都会为另一个请求创建新的PID。这里我的要求是,一旦我的物联网设备连接到服务器,那么连接应该保持在那里,我想随时发送、接收数据。 有人能帮我吗? 我把我的代码贴在下面 服务器代码 var net = require('net'); // Create Server instance var server = net.createServer(main); server.lis

我在NodeJS中创建了一个套接字服务器,在这里我可以发送一些数据并从服务器接收数据,但问题是每次连接关闭时,都会为另一个请求创建新的PID。这里我的要求是,一旦我的物联网设备连接到服务器,那么连接应该保持在那里,我想随时发送、接收数据。 有人能帮我吗? 我把我的代码贴在下面

服务器代码

 var net = require('net');

// Create Server instance 
var server = net.createServer(main);  

server.listen(9010, function() {  
  console.log('server listening on %j', server.address());
});

function main(sock) { 
  sock.setEncoding("utf8");

  sock.on('data', function(data) {
    var data = data;
    console.log('Request data is ', data);
    console.log('Says:', data);
    sock.write("responding to client");
    sock.write(' exit');
  });

  sock.on('close',  function () {
    console.log('connection closed');
  });

  sock.on('error', function (err) {
    console.log('Connection error: %s', err.message);
  });
};
客户端代码

   var net = require('net');

    //params
    var HOST = 'myhost';
    var PORT = 9010;

    var client = new net.Socket();
    client.connect(PORT, HOST, function() {

        console.log('CONNECTED TO: ' + HOST + ':' + PORT);
        client.write('Hello socket server');
    });

    client.on('data', function(data) {
        console.log('Recieved data: ' + data);
        client.destroy();

    });
    // Add a 'close' event handler for the client socket
    client.on('close', function() {
        console.log('Connection closed');
    });

WebSocket不是原始TCP/IP套接字。名称“WebSocket”指的是(就像HTTP指的是特定的协议名称一样)。除非您的问题与协议有关,否则请不要使用WebSocket标记。为什么
var HOST='myhost'
?您不是在使用
localhost
(同一台机器)进行测试吗?var HOST='myhost'这里我使用的是托管套接字服务器的myhost,即socket.mydomain.com。