路由到支持ejabberd中单个域的特定XEP-0114实例?

时间:2019-04-21 03:14:52

标签: xmpp ejabberd

我有一个简单的ejabberd 18.09安装程序,在域test.localhost下运行测试组件。

配置非常简单:

port: 8888
module: ejabberd_service
hosts:
   "test.localhost":
       password: "secret"

我已经设置了XEP-0114 / XMPP组件以通过Procfile运行多个实例:

test1: ./testcomponent --address localhost:8888 --secret ... --name test.localhost
test2: ./testcomponent --address localhost:8888 --secret ... --name test.localhost
test3: ./testcomponent --address localhost:8888 --secret ... --name test.localhost

现在,当我向test.localhost下的任何联系人发送消息时,肯定可以从其中之一获得消息。那很棒!对于任何给定的xmpp组件,似乎都可以扩展到多个主机和节点,而不必担心单个故障点。

是否有办法始终将发送到user1@test.localhost的消息路由到上述test1进程?也许是由test1实例以user1@test.localhost作为联系人发送的特定状态消息?

1 个答案:

答案 0 :(得分:1)

您应该使用值为“ bare_source”的“ domain_balancing”选项。它将确保来自给定用户的所有数据包都到达同一组件。 文档在这里:https://docs.ejabberd.im/admin/guide/advanced/