我有 2 个应用程序,1 个大型 Delphi Windows 应用程序和 1 个小型 Node.js 应用程序。我希望 Node.js 应用程序根据从实时服务收到的输入向 Delphi 应用程序发送不同的消息。
我现在的问题是,如何开始在这两个应用程序之间交换消息 - 如何将消息从 Node.js 发送到 Delphi 应用程序?
我自己一直在做一些研究,但没有得到任何明确的答案,尽管如果我希望实时发送这些消息,WebSockets 似乎是唯一的解决方案?
我尝试使用 socket.io 为我的 Node.js 应用程序编写一些代码,让您了解我想要什么:
const Realtime = require("ably").Realtime;
const server = require("http").createServer(handler);
const io = require("socket.io")(server);
server.listen(80);
io.on("connection", (socket) => {
console.log("Connected!");
socket.on('event-1', function (data) {
// alert Delphi app about event
});
});
const client = new Realtime('XXXXX');
client.connection.on("connected", () => {
console.log("Realtime connected!");
});
function handler(req, res) {
console.log("Got em");
}
所以想法是 Delphi 应用程序在启动时启动 Node.js 应用程序,并且接收到的所有实时消息都从 Node.js 应用程序传递到 Delphi 应用程序。
我一直在寻找 WebSockets 和 Delphi 的库,但只找到了这个 https://www.esegece.com/websockets/download , 但我不知道这是否可行。
希望有人能给我一些建议。
最佳答案
how to send messages from Node.js to the Delphi app?
您可以在 Delphi 应用程序中运行嵌入式 HTTP 服务器(例如 Indy TIdHTTPServer),使其能够接收来自 JS 应用程序的 HTTP 请求。
或者 - 如果您更有冒险精神 - 您也可以设计自己的协议(protocol)并在 Delphi 应用程序中运行嵌入式 TCP 服务器 (Indy TIdTCPServer)。
除了 HTTP 之外,还有其他用于消息交换的协议(protocol)和库。一个可用于 Delphi 和 nodejs 的是 0MQ (ZeroMQ):
关于javascript - 在 Node.js 和 Delphi 应用程序之间交换消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52094057/