Siesta是否支持HTTP长轮询

Does Siesta support HTTP long polling

我有一个 API 端点,它以无穷无尽的 JSON 对象序列响应。喜欢

GET /commands?since=112233 {"cmd": "mycommand", "params": [...]} {"cmd": "othercommand", "params": [...]} ... 会话几乎永远不会结束(服务器有一个最终超时的设置,但典型值为数十万秒)。

有没有办法在 Siesta 中使用这样的 API?

不,Siesta 不直接支持这一点。 Siesta 的一个基本假设是 URL 是具有(有限)状态的资源,并且您希望观察该状态随时间的变化。因此,Siesta 在实际开始解析并发布结果之前期望得到完全具体化的响应。您所描述的是 HTTP 的另一种用法,它不适合 Siesta 的模型。

现在,如果您获得的 JSON 对象序列可以合理地解释为代表资源随时间变化的 连续状态序列 ,那么就可以在 Siesta 之外进行您自己的网络呼叫,然后使用 Resource.overrideLocalData(…) 在更新到达时发布它们。

但是,查看您提供的样本数据,这看起来更像是 actionsevents 的序列,而不是 events 的序列=18=]州。 Siesta 以资源为中心的世界观可能不太适合这种情况。如果问题是“事物 X 的当前状态是什么?”,午睡会给您带来最大的好处。对您的 API.

来说是有意义且自然的