代码之家  ›  专栏  ›  技术社区  ›  Abhinav Singh

配置Jabber外部组件以代表任何用户发送节[已关闭]

  •  1
  • Abhinav Singh  · 技术社区  · 14 年前

    不久前我在某个地方读到,可以配置外部Jabber组件(XEP-0114)以代表任何用户发送XMPP节。例如,假设我有一个组件绑定到(component.localhost),我希望它发送一个消息节,其中“from”属性设置为“user@localhost”。

    我正试图用伊贾巴德来实现这一点。如果我必须破解ejabberdsc来完成这个工作(如果可能的话),我不会感到惊讶。

    3 回复  |  直到 14 年前
        1
  •  5
  •   David Ammouial    14 年前

    如果您使用ejabberd,您可以使用 {service_check_from, false} 服务定义中的选项,以禁用对“from”属性的验证。

    不过,请记住 XEP 0114 要求jid的“主机”部分与组件的名称匹配。

    查看 corresponding section of ejabberd documentation 所有血淋淋的细节。

        2
  •  0
  •   Julien Genestoux    14 年前

    从技术上讲,您必须实际编写组件,但这很容易做到。 您必须首先确认ejabord,以便它接受特定于您的组件的连接,以及给定的组件jid和密码。默认配置文件有几个示例,例如网关。

    完成后,将一个XMPP库/客户机与该组件的凭证连接起来,您就可以开始了!唯一的约束是发送有效的XML。

        3
  •  0
  •   Ben Langfeld    14 年前

    您的组件通常只允许发送看似来自*@component.domain.com的节,而不是 @ .domain.com.这是一个安全功能。

    如果您想要这个功能,您可能需要编写一个服务器插件,而不是一个外部组件。