从服务器向Chrome扩展程序发送推送通知的最佳方法?

时间:2017-11-10 10:24:48

标签: google-chrome google-chrome-extension websocket firebase-cloud-messaging

我正在为分类广告网站制作镀铬扩展程序。使用Chrome扩展程序,用户将能够从他们观看的类别/搜索查询中获取最新列表。

我已经在使用websocket服务器向用户发送通知,但这样我必须始终为每个用户打开一个套接字连接。

我的第二种方法是使用Firebase,但这只会在用户点击图标(我已阅读)时运行通知,而我宁愿从我的服务器完成此操作

__

是否有其他可能的解决方案可以在没有用户点击图标的情况下向Chrome扩展程序发送通知?

2 个答案:

答案 0 :(得分:4)

您可以使用谷歌的推送基础设施 - 与Android推送通知功能相同 - Google云端消息传递。

注意:Firebase云消息传递是GCM的升级版本;虽然如此,Chrome并不像GCM那样以原生的方式支持它。

chrome.gcm API是可以使用它的人。有关详细信息,请参阅其文档以及GCM documentation

甚至还有一个教程:Implementing GCM Client on Chrome

但简而言之,您的扩展程序将注册为GCM的订阅者,将订阅ID传递给服务器,然后应用程序服务器使用这些ID将消息发布到GCM。

如果您愿意使用通用JS SDK实现它,您也应该能够使用Firebase; "只有当用户点击图标时才会运行通知。听起来很荒谬 - 后台页面应该能够让监听器保持活跃并做出反应,这可能就是你的系统现在的工作方式。我仍然会推荐一个原生API,它应该与事件页面兼容。

答案 1 :(得分:-1)

你看过chrome.notifications API了吗?它允许您使用模板创建丰富的通知,并向系统托盘中的用户显示这些通知。

https://developer.chrome.com/apps/notifications

您可以在后台脚本中连接到套接字服务器,侦听来自套接字服务器的消息并触发显示通知的事件。