1

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

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

在 Ruby xmpp4r中,执行相同的等效操作不会将消息发送给离线用户,而是返回(异步)一个 xmpp 服务不可用的节,甚至不返回任何内容,并且也不工作。消息只是丢失了。

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

此外,在相关主题中,在Xmpp 的 Jabber::Stream 发送方法的 api 文档中,有一个“块”参数。如何使用它?

谢谢

4

1 回答 1

3

确保您正在type=:chat处理消息。

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

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

于 2011-02-14T18:51:35.050 回答