canhaschat插件没有在接受消息时刷新最后使用时间。这样的话,如果客户端一直在等待消息,那么到达timeout就会退出,实际上客户端还是在连接的,这时候 chat_id已经失效了。
看上去应该在接受消息的时候刷新一下最后时间。
canhaschat/lib/can_has_chat/remote/chat_server.rb
line 150:
实际上就加了一句:
conn.refresh_age()
这样即使长期等待也不会退出了。
看上去应该在接受消息的时候刷新一下最后时间。
canhaschat/lib/can_has_chat/remote/chat_server.rb
line 150:
get_connection_for(options[:id]).synchronize_with do |conn|
conn.refresh_age()
sender_jid = get_user(options[:from], options[:transport]) if options[:from]
return conn.empty_queue_of_all_messages(sender_jid)
end
实际上就加了一句:
conn.refresh_age()
这样即使长期等待也不会退出了。