我想在跨平台移动客户端(Android,PC - 用 Java 编写的iOS和用 Objective-C编写的iOS)之间实现双向通信 )和我的Google AppEngine( Java )服务器。它应该:
我考虑过使用Channel API和一些反向工程Java客户端,但这似乎有机会(因为它没有得到官方支持)。另外,我甚至不确定是否有针对Objective-C的解决方案,我不想自己潜入并实施它。
然后我考虑使用XMPP。但是,我不确定如果不让我的用户输入Jabber帐户,这是不可能的,我不能(通信在后台)。有没有办法为我的客户创建一个临时用户?
C2DM似乎也不是一个好选择。它不是跨平台的,它似乎非常注重“通知”而不是通信,并且不保证消息传输的成功。
或者可能有一种我没有想过的完全不同的方法?这种沟通对我来说相对较新。
谢谢!
编辑:
由于我正在寻找后台通信,因此我想到了一个新选项:单个XMPP用户,其资源作为客户端标识符。这意味着,我将为我的应用程序创建一个XMPP用户(类似于:“AppBackgroundUser@domain.com”),并让客户端使用他们自己的唯一ID作为资源(“AppBackgroundUser@domain.com/UNIQUEID”) )。这种方法有任何缺点或严重的安全漏洞吗?
答案 0 :(得分:2)
我能想到的两个选择:
答案 1 :(得分:0)
XMPP似乎是您最好的选择,但您需要配置您的服务器以允许匿名客户解决您的注册问题。
我不确定你们双方在发起通信时的意思。 XMPP将要求客户端通过连接到服务器来启动,但之后它可以接收未提示的消息。当然,如果意图是服务器向客户端发送未提示的消息,那么如何知道没有某种客户端身份的客户端(这意味着某种形式的注册)?