如何在GAE Channel API上处理未传递的消息?

时间:2014-03-12 16:32:09

标签: google-app-engine channel-api

以下Google参考页显示“如果无法发送邮件,则不会返回错误”: https://developers.google.com/appengine/docs/python/channel/functions

相比之下,Socket.IO对消息进行了ack回调,因此您可以处理成功/错误: http://socket.io/#how-to-use

是否有人建议使用Channel API实现相同目标的解决方案?否则,Channel API仅对易失性消息传递有用。而且我宁愿不通过编写事务系统进行消息传递来重新发明轮子以实现这种效果。

1 个答案:

答案 0 :(得分:1)

坏消息是Channel API是单向且无阻塞的,因此无法等待响应或指定回调。然而...

Elements of the Channel APIChannel Python API Overview部分表示服务器的角色包括“通过HTTP请求从客户端接收更新消息”。因此,通过在每个通道消息中发送唯一的消息标识符,客户端可以通过HTTP异步地确认它们。服务器可以在每次超时后重新发送未确认的消息。

也许这仍然是个坏消息,因为这个建议看起来太像你的“为消息传递编写事务系统”,尽管异步部分会比同步socket.io更好。