Node.js 发送http请求并接收推送数据
我希望我的Node.js代码向另一台服务器发送http请求。使用下面的代码可以很好地工作。我的问题是,有问题的服务器应该推送数据,并且在请求之后立即关闭连接 例如,如果使用浏览器打开页面,则会从服务器获取推送数据,并且浏览器会刷新页面。问题是:如何在我的节点服务器中获取http请求之后的推送请求(来自另一台服务器)?我尝试使用“保持活动”保持连接活动,但这并没有改变任何事情 示例代码:Node.js 发送http请求并接收推送数据,node.js,push,Node.js,Push,我希望我的Node.js代码向另一台服务器发送http请求。使用下面的代码可以很好地工作。我的问题是,有问题的服务器应该推送数据,并且在请求之后立即关闭连接 例如,如果使用浏览器打开页面,则会从服务器获取推送数据,并且浏览器会刷新页面。问题是:如何在我的节点服务器中获取http请求之后的推送请求(来自另一台服务器)?我尝试使用“保持活动”保持连接活动,但这并没有改变任何事情 示例代码: 您的问题中有一些含糊不清的地方,涉及到更新实际上是如何在浏览器中完成的。我们无法告诉您如何复制浏览器操作,除非
您的问题中有一些含糊不清的地方,涉及到更新实际上是如何在浏览器中完成的。我们无法告诉您如何复制浏览器操作,除非您告诉我们实际发生了什么操作 HTTP是一种请求/响应协议,这意味着如果浏览器未首先打开指向服务器的链接(带有请求),服务器无法“推送”到浏览器 对我来说,这听起来像是你想要为一个你不拥有的网页创建一个自定义客户端,因此你必须构建你的应用程序,使其表现得像一个网页,因为你无法控制为该网页服务的服务器。对吗 (顺便说一句,许多网站的服务条款禁止您尝试开发的使用类型。请验证您是否在应用程序的范围内) 如果是这样的话,那么你要做的就是在页面加载后找出浏览器是如何连接到服务器的。有几种方法可以实现这一点: 1) 页面加载javascript,该javascript定期在计时器上发出新的AJAX请求。如果是这样的话,那么你很幸运,你所要做的就是捕获AJAX请求的结构,然后在你的应用程序中,在同一个计时器上发出一个新的HTTP请求 2) 该页面向服务器打开一个websocket,该套接字接受来自服务器的传入数据。这有点不那么直截了当,但是有很多库(socket.io)可以实现这种连接
作为一个单独的问题,对于这两种方法中的任何一种,站点可能会为浏览器传递凭据以返回并成功建立这些连接,如果是这样,您必须能够获取这些凭据并使用它们。来自服务器的数据位于区块
res.on('data', function (chunk) {
HTTP被认为是发送数据并关闭连接的。
如果您正在运行server.com,则可以重写应用程序以保持连接打开(如普通套接字)。
但是,正如其他人建议的那样,我认为您可以使用其他技术,如web套接字或长轮询。服务器推送是如何实现的?这个问题让人觉得它可能是长轮询,这与您介绍的两个选项不同。长轮询与选项1仅略有不同,即忽略计时器,只需在最后一次响应时触发一个新请求。这份清单并不全面,只是引导他走向正确的方向,因为没有足够的信息来做其他事情。
res.on('data', function (chunk) {