【问题标题】:nodejs client server issue when reconnecting重新连接时的nodejs客户端服务器问题
【发布时间】:2016-12-15 18:43:59
【问题描述】:

我对@9​​87654321@ 很陌生,并且我有一些客户端-服务器实现,它基本上以以下方式工作:我提交了一个向客户端远程服务器抛出数据的表单。后者给我发回一些新数据。

net.createServer(function (socket) {

      socket.on('error',function(err){ console.error(err)});

      socket.on('data', function (data) {
          some_method(data)
      }); 
      socket.on('end', function() {
        console.log('CONN: disconnected');
        //socket.end();
     });

    app.post('/api/sender', function(req, res) {
          socket.write(some_input);
          res.end();
      });
    }).listen(9000);

这在客户端断开连接并重新连接之前运行良好,然后我收到以下错误消息:

{ [Error: This socket has been ended by the other party] code: 'EPIPE' }

代码在socket.write(some_input) 这一行崩溃。有人可以帮忙吗?

【问题讨论】:

    标签: node.js sockets client-server


    【解决方案1】:

    这是如何解决的:

    module.exports = function(app) {
        var clients = {};
    
    var server = net.createServer(function (socket) {
    
         server.getConnections(function(err, count) {
                var id = sha1(socket.remoteAddress);
                clients[id] = {
                    stream: through(),
                    socket: socket,
                }
                clients[id].stream.pipe(socket);
            });
          socket.on('error',function(err){ console.error(err)});
    
          socket.on('data', function (data) {
              some_method(data)
          }); 
          socket.on('end', function() {
            console.log('CONN: disconnected');
            socket.end();
         });
    
        app.post('/api/sender', function(req, res) {
        // here id is the IP adress got from req
            if (clients[id]) {
                clients[id].stream.write(input);
            }
              res.end();
          });
        }).listen(9000);
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 2012-07-04
      • 2012-08-31
      • 2011-02-08
      • 1970-01-01
      相关资源
      最近更新 更多