在过去的几天里,我一直在兜圈子,试图为我的问题找到一个好的解决方案。这里的主要关键是这是针对 iOS 应用程序的。我想要的是从一台设备快速通信到另一台设备更新。所以如果用户 1 执行了一个动作,我想实时地告诉用户 2 用户 1 已经执行了这个动作。
出于各种原因,我不想使用 Apple 推送通知。所以这是不可能的。我研究了 Pusher 和 PubNub 之类的服务,但这些服务太贵了(并且只允许极少的并发连接数,~2500)。我还研究了 Google App Engine 的 Channel API,但它通过 Javascript 工作,并且必须在 iOS 上使用阴暗的技术来实现。老实说,我宁愿不使用它。
所以现在我正在研究 Google App Engine 中的 XMPP。似乎它会做我想做的事,但我不确定我是否理解了整个画面。难道我不能使用 XMPP 消息完成我想要的,即当用户 1 执行操作时,我可以使用 JSON 消息快速通知用户 2?
这里的主要关键是我必须在后台使用用户的唯一 ID 为 XMPP 执行用户注册。这是否可以在没有用户干预的情况下自动创建一个 Jabber ID,例如 user-unique-id@my-app-engine-domain.com?
总的来说,这是一个可行的解决方案吗?我错过了什么?有哪些例外?