我正在尝试创建和node.js api,用户可以订阅获得事件通知?
我创建了下面的API并能够使用python调用API,但是我不清楚人们如何订阅它?
人们如何订阅此API以获得发布的新根构建通知?我需要更改什么?
node.js API
app.get("/api/root_event_notification", (req, res, next) => {
console.log(req.query.params)
var events = require('events');
var eventEmitter = new events.EventEmitter();
//Create an event handler:
var myEventHandler = function () {
console.log('new_root_announced!');
res.status(200).json({
message: "New root build released!",
posts: req.query.params
});
}
import requestspython调用
input_json = {'BATS':'678910','root_version':'12A12'}
url = 'http://localhost:3000/api/root_event_notification?params=%s'%input_json
response = requests.get(url)
print response.text产出:-
{"message":"New root build released!","posts":"{'root_version': '12A12', 'BATS': '678910'}"}发布于 2019-09-10 04:29:08
您不能将发送http响应的时间推迟到任意的时间。客户机和服务器(有时还包括主机提供商的基础设施)都会在几分钟后超时http请求。有各种各样的技巧试图保持http连接的活力,但所有这些都有局限性。
使用web技术,获取客户端更新服务器数据的常用选项如下:
由于防火墙和公共IP地址问题,服务器通常无法直接连接到客户端,因此服务器通知客户端的通常机制是使用从客户端到服务器的持久webSocket连接,然后任何一方都可以通过该连接发送webSocket数据包,或者使用更新的SSE (服务器发送事件)允许通过持久的连接将一些服务器事件发送给客户端。
客户端也可以反复“轮询”服务器,但这实际上不是一个事件通知系统(而不是特别高效或及时),而不是客户机可以检查的某种状态。
https://stackoverflow.com/questions/57863883
复制相似问题