我的用例:用户登录我的应用程序,应该能够向自己发送消息,登录到另一台Android设备上的应用程序。如果用户有多个设备,则一旦打开该消息,其他设备上的通知就必须消失。
疑惑:
如何跨设备向特定用户发送数据?我理解如何使用GCM向不同设备上的不同用户发送消息,但这似乎相当混乱。
如何在MQTT中以足够的安全性实现这一目标?我尽可能多地阅读有关安全性的内容,并得出结论,MQTT不负责它,我将在代理级别实施自己的安全措施。截至目前,Mosquitto代理允许用户名/密码验证,但对于实现Oauth的应用程序,用户名/密码似乎相当脆弱。
或者我应该转移到XMPP?
答案 0 :(得分:2)
您可以使用GCM的新User Notifications功能。
什么是用户通知?
第三方服务器可以向多个实例发送单个消息 在单个用户拥有的设备上运行的应用程序。这个功能是 称为用户通知。用户通知使其成为可能 用户拥有的每个应用实例都反映最新的消息 州。例如:
- 如果在一台设备上处理了一条消息,则另一台设备上的GCM消息 设备被解雇。例如,如果用户已经处理过 在一台设备上发送日历通知,通知将会消失 用户的其他设备。
- 如果尚未将消息传送到设备但已经处理过,则GCM服务器会将其从未发送的队列中删除 其他设备。
- 同样,设备可以向notification_key发送消息,该消息是GCM用于向所有注册ID与密钥相关联的设备发送通知的令牌。