Я пытаюсь заставить ejabberd уведомлять мой сервер приложений об автономных сообщениях через mod_push (тогда мой сервер приложений может связываться с Apple и Google, чтобы отправить уведомление).mod_push включен, мой сервер приложений подписывается на подузел паба клиента, и похоже, что ejabberd пытается переслать сообщение, но не удается выполнить «неправильный запрос» в журналах.
Я использую ejabberd 19.02 в локальной сети.машина (mac os) с моим сервером приложений для тестирования.
У меня все работает, кроме той части, где ejabberd уведомляет мой сервер (но я могу получить уведомления, работающие, если я вызываю свой сервер вручную - минуя ejabberd),Я перепробовал много вещей и чувствую, что я близок, но мне не хватает той важной части, которая устраняет разрыв.Вот что у меня есть:
- Клиентское приложение может обнаруживать возможности с помощью ejabberd, и возвращается
<feature var="urn:xmpp:push:0" />
.Однако
<identity category='pubsub' type='push' />
нет (но требуется согласно разделу 4.2 XEP-0357 - не уверен, важно ли это).2. Клиентское приложение создает подузел pub с ejabberd для push-уведомлений.3. Клиентское приложение включает push-уведомления с ejabberd, как определено в XEP-0357.Я вижу, что ejabberd включает push в логах:
[info] <0.524.0>@mod_push:enable:308 Enabling push notifications for u36@myserver.com/226697823346746205410
Мой сервер приложений подписывается на подузел pub, созданный клиентским приложением.Эджаберд возвращается
<iq xml:lang='en' to='t1@myserver.com/4729064957403048358323' from='pubsub.myserver.com' type='result' id='or5Xh-25'><pubsub xmlns='http://jabber.org/protocol/pubsub'><subscription subscription='subscribed' subid='6152052EA877' node='u36:1' jid='t1@myserver.com'/></pubsub></iq>
Отправка сообщения в автономное приложение, по-видимому, вызывает mod_push, но в журналах отображается сообщение о том, что запрос недействителен:
[warning] <0.427.0>@mod_push:notify:458 pubsub.myserver.com rejected notification for u36@myserver.com (u36:1), disabling push: bad-request (modify)
Это где я мертв в воде,Я ожидал, что мой сервер приложений будет получать уведомления от ejabberd, но вместо этого ejabberd записывает ошибки в журналы.
Многие документы там устарели и не совместимы с версией, которую я использую.Я был бы очень признателен, если бы кто-нибудь мог помочь мне перенаправить уведомления от ejabberd на мой сервер приложений, чтобы я наконец смог связать их все вместе.