簡體   English   中英

在 Node.js 和 Delphi 應用程序之間交換消息

[英]Exchanging messages between Node.js and Delphi app

我有 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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM