Отправка сообщения XMPP автономному пользователю Google Talk с помощью ruby ​​xmpp4r

При использовании Perl Net::Jabber отправка простого сообщения автономному пользователю приводит к тому, что сообщение доставляется пользователю, когда он подключается к Интернету (оно даже отображается в учетной записи gmail пользователя как непрочитанные сообщения). Это так же просто, как делать

my $msg = Net::Jabber::Message->new();
$msg->SetMessage(...);
$connection->Send($msg);

В Ruby xmpp4r выполнение аналогичной операции не отправляет сообщение автономному пользователю, а возвращает (асинхронно) раздел недоступности службы xmpp или даже не возвращает ничего, а также не работает. Сообщение просто потеряно.

Как отправить оффлайн сообщение с помощью xmpp4r?

Кроме того, в соответствующей теме, в api docs xmpp для метода send Jabber::Stream, есть параметр "block". Как можно это использовать?

Спасибо

1 ответ

Решение

Убедитесь, что вы делаете type=:chat на сообщение.

client.send(Jabber::Message.new(jid, contents).set_type(:chat))

(код, скопированный из комментария Рикардо Пардини, для долгосрочной ясности)

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