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

时间:2018-08-30 09:51:04

标签: javascript node.js delphi websocket socket.io

我有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应用程序。

我一直在为Delphi寻找WebSockets库,但是只找到了https://www.esegece.com/websockets/download,但是我不知道这是否可行。

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

1 个答案:

答案 0 :(得分:1)

  

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

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

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

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

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