在 Node.js 和 Delphi 应用程序之间交换消息



我有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,但我不知道这是否可行。

希望任何人都可以给我一些建议。

如何将消息从 Node.js 发送到 Delphi 应用程序?

您可以在Delphi应用程序中运行嵌入式HTTP服务器(例如Indy TIdHTTPServer(,使其能够从JS应用程序接收HTTP请求。

或者 - 如果你更冒险 - 你也可以设计自己的协议,并在Delphi应用程序中运行嵌入式TCP服务器(Indy TIdTCPServer(。

除了HTTP,还有其他用于消息交换的协议和库。一个可用于Delphi和nodejs的是0MQ(ZeroMQ(:

https://github.com/zeromq/zeromq.js/

最新更新