在发送消息之前,了解给定联系人是否在线的正确的xmpp4r方法是什么?
您可以发布用于此操作的示例xmpp4r代码吗?
这里是我的用例:
下面是我的工作代码:
但是,我找不到像这样直接处理工作流程的地方:
我已经读过,您应该发送一个JID类型的消息:标题,如果失败,您知道用户离线。在我的测试中,如果用户在线,他们将收到一条标题类型的消息。这是次优的,因为用户应该只接收要读取的消息,而不是确定在线状态的噪音。
我看过,在登录的时候,你所有的联系人都会把你的存在状态反馈给你,而这种状态是他们在线的唯一迹象--假设你还没有收到任何断开或存在变化。因此,您应该注册一个存在回调,记录初始用户谁平您回来,然后添加或删除根据您正在运行的名册存在回调列表。
如果这真的是这样做的话:
发布于 2013-05-13 15:57:13
因此,这里的答案是添加一个消息回调,并在块中检查类型:
m = Message.new(to, body)
cl.send(m)
cl.add_message_callback do |m|
if m.type == :error
puts "type: #{m.type}"
else
puts "not an error"
end
end这需要线程处理,因为您必须侦听响应。
https://stackoverflow.com/questions/16523113
复制相似问题