消息传递服务器如何对目标客户端进行独立处理并发送推送通知



我的客户端是Android设备。客户端想要向另一个客户端发送一些信息,该客户端将首先发送到应用服务器,然后服务器将通知中间件服务(某种消息代理),该服务将负责向目标客户端发送推送通知(告诉它从应用服务器轮询)。
我想知道:
此中间件服务将如何识别要通知的客户端设备?
更具体地说,推送通知服务器如何定位要向其触发通知的物理设备?
我的要求是,即使在使用VPN或代理(类似于WhatsApp)时,客户端也应该能够获得通知。此外,如果客户端断电,则中间件会将消息排队,并在客户端再次打开电源后传递消息。
我一直在研究诸如Firebase Cloud Messing和MQTT代理之类的东西,但我想自己实现类似的东西。
我想在 Java 中实现这一点。

您的客户端(具有唯一的ID和令牌)会将消息发送给另一个在数据库中也具有唯一ID和令牌的客户端。所以,

服务器会将接收者的ID映射到接收方令牌,并将通知发送给接收方。

数据库(后端)将具有针对每个客户端的唯一 ID(可能是主键),并且对每个客户端具有唯一令牌(用于发送通知)。因此,当发送方-客户端发送消息时,后端脚本将接收方-客户端(发送方向其发送)的id映射到接收方客户端令牌。然后将通知发送到特定令牌。

最新更新