【问题标题】:AngularJS - share a websocket between tabs/windowsAngularJS - 在选项卡/窗口之间共享一个 websocket
【发布时间】:2017-05-31 12:33:30
【问题描述】:

我正在使用angular-websocket打开一个WebSocket,应用程序正在等待消息,然后显示一个网络通知。

我注意到,当打开超过 1 个选项卡时,会有很多连接,然后每个选项卡都会收到一条消息,并且通知会在应该显示一次时显示 1 X TABS_NUM

我认为要使其正常工作,我需要为整个应用打开 1 个 WebSocket。

有什么想法吗?这种情况我该怎么办?

【问题讨论】:

  • 每个窗口都是客户端应用程序的一个单独实例。真的不清楚你在寻找什么行为
  • 我有一个发送通知的 websocket。但是,如果客户有 2 个打开的标签,则为客户发送 2 个相同的通知是不对的……在这种情况下我该怎么办
  • 你不能在一个标签中读取消息时发出一条消息,然后其他标签就知道了吗?
  • @charlietfl 你能解释一下吗?
  • 你在使用Notifications API吗?如果是这样,tag 通知也可以避免重复。如果不是...显示更多详细信息

标签: javascript angularjs websocket notifications web-notifications


【解决方案1】:

使用tag 解决了我的问题:

用户通常不希望收到大量通知 在很短的时间内——例如,如果一个信使怎么办? 应用程序通知用户每条传入的消息,他们是 被发送了很多?避免向用户发送过多的垃圾邮件 通知,可以修改待处理的通知 队列,用新的替换单个或多个待处理通知 一个。

为此,可以为任何新通知添加标签。如果一个 通知已经具有相同的标签并且尚未显示, 新通知将替换之前的通知。如果 已显示具有相同标签的通知,则 上一个通知已关闭并显示新通知。

new Notification(notificationMessage.title, {tag: notificationMessage._id});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 2023-04-11
    • 2017-05-27
    • 2011-09-08
    • 1970-01-01
    相关资源
    最近更新 更多