Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Node.js和Delphi应用程序之间交换消息_Javascript_Node.js_Delphi_Websocket_Socket.io - Fatal编程技术网

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

Javascript 在Node.js和Delphi应用程序之间交换消息,javascript,node.js,delphi,websocket,socket.io,Javascript,Node.js,Delphi,Websocket,Socket.io,我有两个应用程序,一个大型Delphi Windows应用程序和一个tiny Node.js应用程序。我希望Node.js应用程序根据从实时服务接收的输入向Delphi应用程序发送不同的消息 我现在的问题是,我如何开始在这两个应用程序之间交换消息-如何将Node.js中的消息发送到Delphi应用程序 我自己也做了一些研究,但还没有得到任何明确的答案,尽管如果我想实时发送这些消息,WebSocket似乎是唯一的解决方案 我尝试使用socket.io为Node.js应用程序编写一些代码,让您了解我

我有两个应用程序,一个大型Delphi Windows应用程序和一个tiny Node.js应用程序。我希望Node.js应用程序根据从实时服务接收的输入向Delphi应用程序发送不同的消息

我现在的问题是,我如何开始在这两个应用程序之间交换消息-如何将Node.js中的消息发送到Delphi应用程序

我自己也做了一些研究,但还没有得到任何明确的答案,尽管如果我想实时发送这些消息,WebSocket似乎是唯一的解决方案

我尝试使用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应用程序

我一直在寻找WebSocket库以及Delphi库,但只找到了这个,但我不知道这是否可行

希望有人能给我一些建议

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

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

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

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


您可以直接从Delphi使用他们的(HTTP+JSON)作为客户端(我想不需要Node.js)。有许多不同的技术可以让两个应用程序通信。查找需要轮询的
IPC
进程间通信
,尽管@OndrejKelle?@TomBrunberg我将有一个look@John说得好,我没想过。它们提供Javascript(不仅仅是Node.js),因此您可以尝试在delphi应用程序中嵌入Javascript引擎,并注册回调以获得消息通知,以避免进程间通信。否则,您将需要在API客户端进程(Node.js、.NET client)和Delphi进程之间使用某种形式的IPC。最终使用此解决方案,创建一个简单的本地web服务器与Delphi非常容易,Node.js与web解决方案集成得非常好。命名管道将更加轻量级。HTTP服务器上的完整配置是过分的