Javascript 如何将信息从web服务器发送到Electron应用程序?

Javascript 如何将信息从web服务器发送到Electron应用程序?,javascript,node.js,electron,Javascript,Node.js,Electron,我正在构建一个电子,当在通过oAuth2连接的某个服务中填写某个表单时,它将本质上提供“通知” 然而,我很难找到(我认为)需要发生的过程的任何信息 我在想 用户从此web服务提交表单 该web服务可以(不确定这是否是一种方式)向我的服务器发送HTTP post 然后我想我的服务器可以将这些信息发送到electron应用程序。我已经调查过“”,但我仍然不清楚这是否有助于解决我的问题 任何帮助,甚至是在正确的方向上轻推,都将不胜感激 Electron正在运行本地节点http服务器,但它不是公共地址。

我正在构建一个电子,当在通过oAuth2连接的某个服务中填写某个表单时,它将本质上提供“通知”

然而,我很难找到(我认为)需要发生的过程的任何信息

我在想

用户从此web服务提交表单

该web服务可以(不确定这是否是一种方式)向我的服务器发送HTTP post

然后我想我的服务器可以将这些信息发送到electron应用程序。我已经调查过“”,但我仍然不清楚这是否有助于解决我的问题


任何帮助,甚至是在正确的方向上轻推,都将不胜感激

Electron正在运行本地节点http服务器,但它不是公共地址。马克斯·奥格登(Max Ogden)在“电子状态”youtube谈话中提到,在公共网络服务器上安装一个“无头”电子应用程序来做一些与服务相关的事情,但基本上你必须有一个可访问的地址。您希望桌面Web服务器具有公共URL吗?

您有多种方法可以做到这一点,但这只能通过Electron(基本上是您的前端)的渲染器进程来实现

为实时应用程序使用web套接字 Web套接字是一种支持服务器和客户端之间实时通信的技术。最有名的是。你也可以看看

设置对服务器执行Ajax请求的时间间隔
换个方向不是更容易吗?让应用程序连接到服务器并请求数据,或者连接到web服务器并提供诸如websocket之类的通信通道。服务器不能向浏览器(electron)发送数据,只能返回数据。因此,浏览器必须做两件事之一。或者每隔几秒钟轮询服务器以检查更新。或者使用websocket。这很有意义。我成功地打了电话,安装了oAuth2,一切正常。基本上,我想要“接近实时”的通知,但似乎每隔几秒钟就对服务器进行一次轮询是相当密集的。我将更多地研究WebSocket;以前从来没有和他们乱搞过。谢谢Socket.io是一个很好的库,可以在实时方面帮助您。在与我的一些同事讨论了我的挑战后,我认为通过Socket.io访问web Socket是解决我的问题的最佳途径。我还与我的一些同事讨论了这一挑战,并得出结论,Socket.io是一条出路。然后我的想法变得更加诡计多端,因为我只想向某个人发送通知,而不是每个客户端都在监听我的套接字。我肯定已经用这个想法打开了一个蠕虫罐头。我想你误解了套接字的原理:套接字是特定于客户端的:它取决于你的后端/服务器应用程序,但你完全可以向一个特定的客户端发送通知(它是为你而设计的)。一个套接字=服务器和客户端之间的一条链路,两个套接字=服务器和客户端之间的两条不同的独立链路。
var checkNotifications = function() {

    var r = new XMLHttpRequest();

    r.open("POST", "url/of/your/notifications", true);

    r.onreadystatechange = function () {
        if (r.readyState != 4 || r.status != 200) return;
            alert("Success: " + r.responseText);
        };

    r.send();
}


setInterval(checkNotifications, 5000); // every 5 seconds