【问题标题】:client code in node js节点js中的客户端代码
【发布时间】:2016-04-22 17:02:08
【问题描述】:

我是 Nodejs 的新手,正在尝试使用套接字建立服务器客户端连接。下面是我的代码。服务器工作正常,但客户端未连接。 请任何人都可以帮我找出错误。

非常感谢 杰西

服务器.js

var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);

io.on('connection', function(socket){
  console.log('a user connected');
  socket.on('disconnect', function(){
    console.log('user disconnected');
  });
});

io.on('data', function(data) {
  console.log('DATA from client is: ' + data);
  // Close the client socket completely

});
server.listen(4200);
console.log('Monitoring server listening on port 4200');

Client.js

var HOST = '127.0.0.1';
var PORT = 4200;
var express = require('express');
var app = express();
var client = require('http').createServer(app);
var io = require('socket.io')(client);

client.connect(PORT, HOST, function()
{

  console.log('CONNECTED TO: ' + HOST + ':' + PORT);
  // Write a message to the socket as soon as the client is connected,
  // the server will receive it as message from the client
  io.write('I am Chuck Norris!');

});

// Add a 'data' event handler for the client socket
// data is what the server sent to this socket
client.on('data', function(data) {

  console.log('DATA: ' + data);
  // Close the client socket completely
  client.destroy();

});

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

【问题讨论】:

    标签: javascript node.js sockets express


    【解决方案1】:

    对于客户端,您使用 socket.io-client 包代替。客户端不需要使用 Express 部分,因为您没有在客户端上重新创建 Web 服务器。如果您查看当前代码,您实际上是在重新创建 Socket 服务器,这不是您想要做的。

    只需创建一个新的 Socket.io 客户端并注册您的各种事件处理程序。

    var socket = require('socket.io-client')('localhost:4200');
    socket.on('data', function(data) {
      // handle incoming data
      console.log(data);
    });
    

    【讨论】:

    • 非常感谢您的帮助。
    • @JessiAnnGeorge 没问题。如果它确实对您有帮助,请务必将其标记为答案,以便其他人在将来查看此问题时知道这是答案。
    • 我必须实现的是需要相互通信的 2 个服务器(一个供应和监控服务器)。我不确定如何做到这一点,所以我将一个作为服务器,另一个作为客户端并以这种方式交谈。客户端将从供应服务器请求服务,对于某些请求,供应服务器将需要从监控服务器获取数据。我们如何使用 2 台服务器来实现这一点?非常感谢
    • @JessiAnnGeorge 你可以在你的 socket.io 服务器中使用socket.io-client。通过这样做,您可以拥有一个 Socket.io 服务器,它也是一个单独的 Socket.io 服务器的客户端。这是您在此评论中讨论的设置。如果您对实施有具体问题,我建议您打开一个单独的问题供人们回答。这超出了原始问题的范围。
    • 再次感谢,我想我找到了答案..非常感谢
    猜你喜欢
    • 2018-03-19
    • 2018-04-27
    • 2017-01-19
    • 1970-01-01
    • 2017-08-27
    • 2016-06-20
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    相关资源
    最近更新 更多