代码之家  ›  专栏  ›  技术社区  ›  naiquevin

使用xmpp的实时通知

  •  3
  • naiquevin  · 技术社区  · 14 年前

    我期待在我的应用程序中包括两个功能使用xmpp。第一种是一对一的聊天(使用strophe),几乎完成了;第二种是实时通知,就像facebook的工作方式一样。我试图理解xmpp中的pubsub系统,但觉得它不适合这个特定的问题。如果错误,请更正,可能是因为没有正确理解概念。 我的要求是- 将有预定义的事件,任何用户都可以火灾,当一个这样做,其他人谁是在线应收到相同的通知。此外,我还想检查用户是否愿意在发送通知之前接收通知。我在这里没有得到的是,如果要使用pubsub,节点在哪里以及如何匹配。我能不能只创建一个其他人都将订阅的节点?在这种情况下,订阅者如何在不成为节点所有者的情况下发布其事件?

    我正在考虑的另一种方法是用标题类型或额外的有效负载(比如说)逐个向所有用户的jid发送消息 <notif/> 区别于普通信息。考虑到可伸缩性,这种方法行吗?

    4 回复  |  直到 14 年前
        1
  •  0
  •   Robin    14 年前

    Pubsub是一个合适的解决方案。在我看来,它能满足你所有的要求。如果希望用户以不同的方式订阅每种消息类型,则需要为每种事件类型设置一个节点(或者可以在单个节点上使用过滤器,但我认为多个节点更容易)。节点所有者可以允许任何人发布到节点,因此这不是问题。

    提到了PEP,但如果您想向不在花名册中的用户发布,它不是正确的解决方案。

    Pubsub还允许您为消息定义任何想要的内容类型,或者如果消息传输的简单行为足够提供信息,则完全不定义任何内容类型。

        2
  •  1
  •   Julien Genestoux    14 年前

    PubSub可以工作,但是,你所描述的感觉更像 MUC

    基本上,它 创建访问者可以加入的聊天室 . 您当然可以配置为只允许某些用户发布。

    因为您已经有了一个在浏览器上运行的客户端,使用Strophe,这应该相当容易。确保这个 粘液组分 正在您的服务器上运行。

        3
  •  1
  •   Abhinav Singh    14 年前

    使用xmpphp库,即在需要时向多个jid发送消息,这是pub sub或MUC可以为您做的。:D因此,根据您的应用程序类型,您需要选择一种并继续使用xmpp进行试验,随着您的继续,事情应该会变得越来越清楚。。。。

        4
  •  1
  •   Chuk Lee    14 年前

    要回答关于实时通知的第二个问题,您需要的是使用PEP而不是pubsub。两者的主要区别在于 PEP 只会公布给你名单上的人,我想这是你想要的。此外,我认为政治公众人物比pubsub或至少更受广泛支持jabber.org网站支持它。政治公众人物的唯一问题是需要 Entity Capability 支持。

    here . 示例是Java;希望您不要反对;-)