使用 ruby​​ xmpp4r 向离线 Google Talk 用户发送 XMPP 消息

发布于 2024-10-17 10:31:58 字数 665 浏览 3 评论 0原文

使用 Perl 的 Net::Jabber 时,向离线用户发送简单消息会导致当用户上线时发送给他的消息(它甚至在用户的 Gmail 帐户中显示为未读消息)。这就像

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

在 Ruby xmpp4r 中做的事情一样简单,做同样的等效事情将消息发送给离线用户,而不是返回(异步)xmpp 服务不可用节,甚至不返回任何内容,并且也不起作用。消息就这样丢失了。

如何使用 xmpp4r 发送离线消息?

另外,在相关主题中,在 xmpp 的 Jabber::Stream 的 api 文档中send方法,有一个“block”参数。如何使用它?

谢谢

When using Perl's Net::Jabber, sending a simple message to an offline user causes the message to be delivered to the user when he comes online (it even show's in the user's gmail account as unread messages). That's as simple as doing

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

In Ruby xmpp4r, doing the same equivalent thing does not send the message to an offline user, instead returning (async) a xmpp service-unavailable stanza or even not returning anything, and also not working. Message is simply lost.

How can one send an offline message with xmpp4r?

Also, in related subject, in xmpp's api docs for Jabber::Stream's send method, there is a "block" parameter. How does one use that?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

つ可否回来 2024-10-24 10:31:58

确保您正在对消息执行type=:chat

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

(为了长期清晰起见,代码复制自 Ricardo Pardini 的评论)

Make sure that you're doing type=:chat on the message.

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

(code copied from Ricardo Pardini's comment, for long-term clarity)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文