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

时间:2011-02-11 23:05:59

标签: ruby perl xmpp xmpp4r google-talk

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

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

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

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

此外,在相关主题中,在xmpp's api docs for Jabber::Stream's send method中,存在“块”参数。如何使用它?

谢谢

1 个答案:

答案 0 :(得分:3)

确保您正在对邮件进行type=:chat

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

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