【问题标题】:Node.js click button and send something with TCP/IP protocolNode.js 单击按钮并使用 TCP/IP 协议发送内容
【发布时间】:2017-04-27 19:55:01
【问题描述】:

我是节点新手。我正在尝试制作用户可以单击按钮的应用程序,并且某些内容将通过 TCP 发送到客户端。
这是我的 ECHO 服务器(来自 nodejs.org 的示例)

const net = require('net');

var HOST = '0.0.0.0'
var PORT = 6969;

var server = net.createServer();
server.listen(PORT, HOST);
console.log('Server listening on ' + server.remoteAddress + ':' + server.remotePort);

server.on('connection', function(socket) {
  console.log('CONNECTED: ' + socket.remoteAddress + ':' + socket.remotePort);
  socket.write('Hello from server');
  // other stuff is the same from here
  socket.on('data', function(data) {
    socket.write('reply data ' + data);
  });
});

你能解释一下如何在另一个 js 文件中获得这个连接吗?我正在尝试制作module.exports = server,但我不明白如何从另一个文件发送信息。请帮帮我

【问题讨论】:

  • 如果你想在其他服务之间共享套接字对象,你需要在服务之间建立一个公共的通信点,这类似于微服务架构(现在一切似乎都是微服务)。您可以通过回调参数传递套接字对象。从我的角度来看,最好的方法是在一个服务中跟踪对象 ID=>socket,并且仅在第二个服务需要发送某些内容时将 ID 传递给另一个服务,只需将 ID 传递回主 tcp 服务器即可广播消息。

标签: javascript node.js tcp


【解决方案1】:

你可以试试这样的:

app.js

 var HOST = '0.0.0.0'
 var PORT = 6969;

 var server = net.createServer();
 server.listen(PORT, HOST);
 console.log('Server listening on ' + server.remoteAddress + ':' + 
 server.remotePort);

 const socket = require("./controllers/socket")(server);
 app.get("/socket/connection", socket.connection);

socket.js

const net = require('net');

module.exports = function(server) {

   module.connection = function(request, response) {

     server.on('connection', function(socket) {
       console.log('CONNECTED: ' + socket.remoteAddress + ':' + 
       socket.remotePort);
       socket.write('Hello from server');
       // other stuff is the same from here
       socket.on('data', function(data) {
          socket.write('reply data ' + data);
       });
     });


   return module;
};

【讨论】:

  • 所以在文件 "main.js" 中我可以使用 'server.socket.write()' 或者它将如何工作?
  • @Mr.Phoenix 在文件“main.js”中,例如,我有很多按钮功能。在“server.js”中,我创建了 tcp 服务器,并且该文件是主文件所必需的。当应用程序启动时->客户端连接到我的服务器并且当我单击按钮时->我应该向客户端发送一些东西
  • 我已经编辑了回复。您可以在任何 js 文件中传递您的服务器参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-17
  • 2012-02-05
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 1970-01-01
相关资源
最近更新 更多