【问题标题】:What is the best way to handle webhook APIs in Hapi.js?在 Hapi.js 中处理 webhook API 的最佳方法是什么?
【发布时间】:2015-04-10 19:48:35
【问题描述】:

一种常见的 webhook 样式 API 实践是 API 使用者接收 webhook 请求,以 204 No Content 响应,关闭连接,然后处理请求。 Hapi.js 直到 nextTick 才发送回复对象,这意味着处理函数必须返回。

将请求处理分离到一个单独的函数中并使用 nextTick 调用它仍然会导致处理在发送回复对象之前发生。 setTimeout 有效,但这会对性能产生负面影响。

Hapi 的请求扩展似乎是一种选择,但无论路径如何,都附加到所有请求,这给其他请求增加了不必要的开销。

Express.js 有一个 response.send() 方法可以立即发送响应。理想情况下,Hapi 应该有这样的东西。

【问题讨论】:

  • 您找到答案了吗? webhook 没有尽快得到响应是否重要?
  • 不,我还没有找到解决方案。是的,在我的应用继续执行工作之前,webhook 请求收到响应并正确关闭连接非常重要。

标签: webhooks hapijs


【解决方案1】:

一种解决方案是使用setImmediate 进行任何应该在发送响应并关闭连接后发生的处理。 Hapi 在nextTick 上发送replysetImmediate 事件将在nextTick 事件之后处理。

查看示例:https://gist.github.com/jeremiahlee/3689e8b4d1513c375b1e

【讨论】:

    猜你喜欢
    • 2023-02-04
    • 2014-09-01
    • 2010-09-06
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多