2015-09-11 5 views
0

Я изучаю систему мгновенных сообщений и читаю о XMPP (RFC6120,6121,6122). Эти документы относятся к обмену данными между сервером и сервером (с использованием имени домена), но они не говорят о маршрутизации между серверами в домене. Можете ли вы показать мне, какие решения или документы относятся к этой проблеме?Маршрутизация между серверами XMPP внутри домена

ex: пользователь хочет отправить сообщения пользователю B, пользователю A подключиться к серверу1, пользователь B подключиться к другому серверу в том же домене с server1 (например: example.com), так как сервер1 знает, какой сервер (IP адрес) имеет соединение с пользователем B для пересылки сообщений?

ответ

2

Маршрутизация внутри домена не является функцией XMPP, а функцией, зависящей от сервера. Это то, что делает уровень кластеризации данного сервера XMPP.

Например, в ejabberd есть таблица сеансов (которая может храниться в разных концах), которая ссылается на ресурс пользователя и узел, на котором работает этот сеанс и соединение TCP/IP.

Спецификация XMPP не определяет, как создать кластер, поскольку это техническая деталь реализации.

+0

Вы знаете какой-либо алгоритм или протокол для решения этой проблемы? Пример: как ejabberd создает и поддерживает таблицу сеанса в кластере? – Ikarus

+0

ejabberd использует репликацию базы данных Mnesia для репликации таблицы сеансов в кластере. –