【问题标题】:Electron NodeJS server to server communication using POST使用 POST 的 Electron NodeJS 服务器到服务器通信
【发布时间】:2016-10-31 12:20:49
【问题描述】:

我正在为学校做作业,我决定使用 Electron 和 NodeJS 制作一个聊天应用程序。所有的 GUI 都是编程的,除了服务器端的东西。我的计划是拥有两台服务器,每台服务器都充当自己的客户端和服务器,彼此之间仅进行通信以发送消息。

如何让每台服务器使用 POST 请求进行通信?有谁知道任何功能齐全的 npm 模块可以用于此目的?

【问题讨论】:

  • 如果您正在制作一个聊天应用程序,您应该查看使用 websockets 进行实时通信的 socket.io。
  • "如何让每个服务器使用 POST 请求进行通信?" - 有什么问题?发出 POST 请求?监听 POST 请求?用五分钟+谷歌解决这两个问题应该是微不足道的。问题是别的吗?喜欢发现服务?

标签: javascript ajax node.js electron


【解决方案1】:

您需要在服务器 A 中使用:socket.io 在服务器 B 中:socket.io-client

像这样:

服务器 A

// Load requirements
var http = require('http'),
io = require('socket.io');

// Create server & socket
var server = http.createServer(function(req, res)
{
  // Send HTML headers and message
  res.writeHead(404, {'Content-Type': 'text/html'});
  res.end('<h1>404</h1>');
});
server.listen(8080);
io = io.listen(server);

// Add a connect listener
io.sockets.on('connection', function(socket)
{
  console.log('Client connected.');

  // Disconnect listener
  socket.on('disconnect', function() {
  console.log('Client disconnected.');
  });
});

服务器 B

// Connect to server
var io = require('socket.io-client');
var socket = io.connect('http://localhost:8080', {reconnect: true});

// Add a connect listener
socket.on('connect', function(socket) { 
  console.log('Connected!');
});

【讨论】:

    【解决方案2】:

    这可以通过React js来完成,github上有很多例子。

    看看这个例子:

    https://github.com/ncuillery/react-chat-project

    https://github.com/keithyong/chat-room

    很高兴看到有人使用 Electron,我刚刚完成了我的第一个项目,我很惊讶。

    正如@Arcath 所说,您必须使用socket.io,它在前端和后端之间进行对话。每当有人发送聊天消息时,React.js 都会处理该消息,并发出服务器接收的套接字消息。然后服务器将套接字消息添加到数据库中。

    【讨论】:

    • avoid link only answers。答案“仅是指向外部网站的链接”may be deleted
    • 无论如何,这些链接似乎都不能解决问题所带来的问题。它们似乎完全是关于浏览器-服务器通信,而不是服务器-服务器通信。
    • 重新编辑:“正如@Arcath 所说,你必须使用socket.io,它在前端和后端之间进行对话。” - 问题是询问后端对等方之间的通信,而不是前端和后端之间的通信后端。
    • @Quentin socket.io 不仅仅用于前端到后端,也可以用于后端服务器之间的通信。使用socket-io-client
    • 那么你的答案应该 (a) 谈论它而不是从前端到后端,并且 (b) 给出正确的答案而不是仅仅命名一项技术。
    猜你喜欢
    • 2016-08-20
    • 2017-08-28
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多