【问题标题】:How to create immediate Notification System in website如何在网站中创建即时通知系统
【发布时间】:2014-08-04 17:23:45
【问题描述】:

我正在实施一个小型社交网站,我正在尝试实施通知。

通知有以下要求

  1. 只要用户关注,所有用户都会收到通知 某些事件(如帖子、创建帖子、发表评论等...

  2. 当用户的一组通知未读时,就像在 facebook 上一样,用户将 继续在他们的导航栏上看到一个阅读通知图标。

问题:我举一个例子来描述我的问题,以便大家更好地理解。

假设有两个用户 AB。 A & B 是朋友,A 发了一些东西,突然 B 喜欢 A 的帖子,然后 A 应该马上收到通知。

  1. 那么我怎样才能实现这种立即接收通知的过程呢?
  2. 我是否应该每毫秒向服务器发送一个调用以检查是否有任何未读通知可供 A 用户使用?在这种情况下,为多个用户创建数以百万计的呼叫。这是可行的解决方案吗? (我认为它会在我的网站上造成不必要的负载。因为我认为 facebook 和 stackoverflow 不使用这种方式)。

给我一​​个合适的解决方案,就像 fb 和其他 webiste 使用一样。

在我的项目中使用的技术:Java 和 MYSQL

【问题讨论】:

    标签: java mysql gwt notifications social-networking


    【解决方案1】:

    1.那么我怎样才能实现这种立即接收通知的过程呢?

    2) 我是否应该每毫秒向服务器发送一个调用,以检查是否有任何未读通知可供 A 用户使用?

    您以上两个问题的答案通过GWTEventService 实现解决。 通过它,您可以编写避免客户端到服务器往返的代码。

    GWTEventService 是一个基于事件的客户端-服务器通信框架。它使用 GWT-RPC 和 Comet / server-push 技术。客户端提供了一个高级 API,可以将侦听器注册到服务器,就像注册到 GUI 组件一样。事件可以添加到服务器端的上下文/域中,客户端的侦听器会收到有关传入事件的通知。服务器端完全独立于客户端实现并且是高度可配置的。可以定义域来决定哪些事件对不同的上下文很重要。

    参考链接:https://code.google.com/p/gwteventservice/

    【讨论】:

    • 如果你在谈论 GWT RPC 机制。我已经在使用它了,是否可以为多个用户创建数万次服务器调用?
    • 不,这与 rpc 机制无关。它不是从客户端到服务器的调用。通过它,编写服务器端逻辑。无论您在服务器 impl 中编写什么逻辑。它将根据特定时间执行。并将消息从服​​务器广播到客户端。 (记住:不是客户端到服务器调用,它是服务器到客户端调用作为给定事件,如计时器或任何其他条件,无论你给出什么)
    • 你试图说我在服务器 impl 端创建了一个计时器来检查通知是否可用。如果可用,则返回给客户。但是确实可以创建从服务器到客户端的反向调用。据我所知,如果不创建从客户端到服务器的请求,服务器将无法响应。我说的对吗?
    • 是服务器推送技术。阅读为什么服务器推送/彗星编程?无需在服务器上创建计时器。服务器将在这种技术的帮助下响应客户端。只是谷歌它。尝试实施它。如果你卡住了然后问..
    • 感谢您的指导,我尝试学习服务器推送/评论编程。
    【解决方案2】:

    不要重新发明轮子。 在每个时间间隔使用 ajax 调用服务器并检查您的服务器并更新 nav acc。

    【讨论】:

      【解决方案3】:

      您应该使用 JavaScript(客户端)和 Java - MySql(服务器端),更具体地说是Ajax。您需要一些时间来理解这个概念和用法,但它完全符合您的要求。

      要提供更多详细信息,您需要创建一个显示通知的局部视图,并异步更新此局部视图(使用 AJAX)。

      【讨论】:

      • 先生,我的问题是,如果我每毫秒点击一次服务器,让单个用户检查未读通知是否可用?在这种情况下,为多个用户创建数以百万计的呼叫?这是可行的解决方案??
      • @Kushal 异步概念意味着当有新通知可用时,显示它。你描述的是一种>技术,当然不可行。但是 Ajax 就在那里,多年来一直在做你所描述的事情。所以正如user3508453所说,不要重新发明轮子,用主流技术来完成。此外,Ajax 还用于一些非常大(以流量 - 用户的名义)的网站。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-25
      • 2023-03-31
      • 2017-02-03
      • 2011-05-12
      相关资源
      最近更新 更多