是否可以仅使用 jquery/ajax 构建推送通知系统?
Posted
技术标签:
【中文标题】是否可以仅使用 jquery/ajax 构建推送通知系统?【英文标题】:Is it possible to build a push notification system with just jquery/ajax? 【发布时间】:2015-07-07 04:23:48 【问题描述】:有像 Faye 这样的 gem,允许一个用户采取行动向另一个用户发送实时推送通知,类似于 facebook 通知。
有谁知道只使用 jquery 和 ajax 来完成此任务的方法吗?
【问题讨论】:
Ajax 正在使用 http,一旦 http 完成它的任务,它将与服务器断开连接。除非您设置间隔并保持从服务器池化,否则您无法从服务器推送。另一种方法是使用web socket 或server sent event (SSE) 仅供参考,您可以阅读Push : SSE vs WebSockets 【参考方案1】:按照 Joey Chong 的回答,您可以使用 SSE(Servent-Sent Events)将消息推送给用户(Faye 基于 websocket,这可能是某些代理和防火墙的问题,看起来您没有t 真的需要双向连接)。
有关 websockets 和 SSE 的更多信息:here 和 here。
如果您不想构建 SSE 服务器或只是想测试一些客户端代码,StreamData 将允许您将任何 JSON API 转换为 SSE 推送(免责声明:我代表这家公司)。它最多可免费提供 100 万条消息,因此如果 SSE 不是您想要的,您可以尝试留下它。
【讨论】:
仅供参考,在您的网站上,我得到了比特币示例:“跨源请求被阻止:同源策略不允许读取proxy.streamdata.io/https://api.bitcoinaverage.com...的远程资源”。对于第一个示例,我现在也得到了相同的结果,尽管这在不久前就起作用了! FF/Ubuntu LTS/NoScript。 非常感谢您的反馈)(对于编辑,我会记得每次都放免责声明)。关于错误消息,proxy.streamdata.io 是一个演示代理,我们不保证 SLA,因为不需要识别。上周,提出了很多请求,我们达到了允许的最大连接数。我们已经提高了极限。它现在应该可以在演示代理上正常工作。您也可以通过创建用户来测试它,然后我们保证即使在免费增值模式中也会有更高的限制。【参考方案2】:不,没有办法直接做到这一点。但是,如果您想从 Web 应用程序发送推送通知,有一些推送通知 API(例如 Chrome Push Notification API 和 PushBullet)很有用。
【讨论】:
以上是关于是否可以仅使用 jquery/ajax 构建推送通知系统?的主要内容,如果未能解决你的问题,请参考以下文章