我正在编写一个简单的单页应用程序,允许人们聊天。该应用程序将主要用于移动设备(主要是Android,但有些iOS虽然Android是主要焦点)。
就通知而言,我倾向于https://github.com/primus/primus。但是,我的主要问题是,即使用户关闭手机或未访问特定页面,我还需要通知。
所以,我也在调查服务工作者并推送通知 - 我想知道是否应该将这些用于所有并忘记Primus。
所以......问题:
问题:
我应该选择混合架构(使用网络工作者的Primus +推送通知),还是应该坚持使用?
走向服务工作者的方式,如何在不使用Firebase等的情况下解决这个问题?也就是说,服务工作者会是什么样子?推送代码(节点/服务器和客户端)看起来像什么?
同样在服务工作者方面,如果用户重新启动他们的电话,或者由于某种原因服务工作者没有在他们的客户端上运行,服务器是否有办法知道这一点? (在这种情况下,我发送短信或电子邮件......)
或者,移动网站甚至可以获取查看该网页的设备ID,转而使用移动推送架构吗?
答案 0 :(得分:0)
我应该选择混合架构(使用网络工作者的Primus + Push通知),还是应该坚持使用?
您不应在Web Push API的顶部构建RTC系统。这不是Web Push的预期目的,而是提供通知用户timely events的机制。
如果无法建立RTC连接以便用户重新打开SPA并重新连接,则可以使用Web Push。
走向服务工作者的方式,如何在不使用Firebase等的情况下解决这个问题?也就是说,服务工作者会是什么样子?推送代码(节点/服务器和客户端)是什么样的?
如果您想在Android中接收网络推送通知,则无法避免Firevase,因为您需要GCM(现在是Firebase云消息传递)。
再次就服务工作者而言,如果用户重新启动他们的电话,或者由于某种原因服务工作者没有在他们的客户端上运行,服务器是否有办法知道这一点? (在这种情况下,我发送短信或电子邮件......)
老实说,我不知道。但你可以建立自己的ack系统。如果您未在合理的时间窗口内收到确认,则可以认为该设备未收到通知。
或者,移动网站甚至可以获取查看该网页的设备ID,而是选择移动推送架构吗?
可能使用特定的浏览器扩展程序,但不支持标准和跨浏览器支持的方式。