Обмен сообщениями между Node.js и приложением Delphi
У меня есть 2 приложения, 1 большое приложение Delphi для Windows и 1 крошечное приложение Node.js. Я хочу, чтобы приложение Node.js отправляло разные сообщения в приложение Delphi в зависимости от входных данных, полученных от службы реального времени.
Мой вопрос сейчас, как я могу начать обмениваться сообщениями между этими двумя приложениями - как отправлять сообщения из Node.js в приложение Delphi?
Я сам проводил некоторые исследования, но не получил четких ответов, хотя кажется, что WebSockets кажется единственным решением, если я хочу, чтобы эти сообщения отправлялись в реальном времени?
Я попытался написать код для моего приложения Node.js, используя socket.io, чтобы дать вам представление о том, что я хочу:
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, но не знаю, возможно ли это или нет.
Надеюсь, кто-нибудь может дать мне несколько советов.
1 ответ
как отправлять сообщения из Node.js в приложение Delphi?
Вы можете запустить встроенный HTTP-сервер (например, Indy TIdHTTPServer) в приложении Delphi, которое позволяет ему получать HTTP-запросы от приложения JS.
Или - если вы более предприимчивы - вы можете также разработать собственный протокол и запустить встроенный TCP-сервер (Indy TIdTCPServer) в приложении Delphi.
Помимо HTTP, существуют другие протоколы и библиотеки для обмена сообщениями. То, что доступно для Delphi и nodejs, это 0MQ (ZeroMQ):