首页 > 解决方案 > 如何在没有 websocket 的情况下通知

问题描述

我想在我的反应应用程序中集成一个简单的通知系统。我想通知例如: - 新帖子(当用户发布系统需要时间对附加的媒体和出版物进行转码) - 缺少设置(用户需要编译一些信息) - 有趣的帖子等。

有一种简单的方法可以将 websocket(如 socket.io)添加到带有 aws lambda 后端的 reactjs 应用程序中吗?

所有通知都不需要实时读取,也许每 2 分钟一次 ajax 调用可以解决我的问题,但是,在这种情况下,如果应用程序不使用,有人可以帮助我避免 ajax 调用(比如如果应用程序仍然存在在前台选项卡中打开...)

componentDidMount() {
    this.liveUpdate()
    setInterval(this.liveUpdate, 120000);
}

liveUpdate() {
    axios.get(endpoint.posts+'/live/', cfg)
        .then(res => {
            // ...
        });
}

此代码在页脚组件中,每 120 秒调用一次,但如果用户在浏览器中打开应用程序而不使用它,调用仍然会发生,这在 lambda 后端意味着浪费金钱。

标签: javascriptreactjswebsocket

解决方案


目前我能想到的主要有3种通知方式……

  1. 长轮询(使用 ajax 等)
  2. 网络套接字
  3. 推送通知

推送(虽然)需要用户的许可


推荐阅读