Ejabberd 17: Как создать ловушку, которая вызывается для автономных сообщений?

Я хочу создать хук, который вызывается всякий раз, когда создается автономное сообщение. Пример: пользователь-a (онлайн) отправляет сообщение пользователю-b (офлайн). Затем согласно ejabberd сообщение сохраняется и отправляется, когда пользователь b подключается к сети. Но в этой ситуации я хочу вызвать POST URL локального сервера с данными. Как создать такой крючок?

Этот хук создан для того, чтобы я мог с локального сервера отправить push-уведомление. Таким образом, всякий раз, когда пользователь выходит в сеть, он / она получает автономное сообщение в виде push-уведомления.

Для этого нет пошаговой реализации. Если кто-то знает это, это будет очень полезно.

2 ответа

При отправке сообщения на локальную учетную запись, которая находится в автономном режиме, вызывается две ловушки: ejabberd_sm вызывает offline_message_hook. И mod_offline вызывает store_offline_message. Найдите это в исходном коде ejabberd, и вы найдете пример кода для их использования.

Основываясь на ответе Бэдлопа , я создал модуль , который делает именно то, что вам нужно для достижения с помощью offline_hook. Только с той разницей, что вам придется подключать компонент к ejabberd, а не получать сообщения по REST API.

Другие вопросы по тегам