Siesta是否支持HTTP长轮询

时间:2017-12-22 04:42:32

标签: swift siesta-swift

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

查看您提供的示例数据,这看起来更像是一系列操作事件,而不是一系列状态。 Siesta以资源为中心的世界观可能不适合这种情况。如果“X的当前状态是什么?”这个问题对于您的API来说是一个有意义且自然的问题,Siesta会给您带来最大的好处。