如何在XMPP中实现"最后看到"功能(如whatsapp)?

use*_*098 4 xmpp

我正在开发一个聊天应用程序,并希望添加"上次见过"功能.我试图通过使用存在节来实现它,但遇到一个问题,请检查以下链接

当用户B也不可用时,用户A的存在不可用

有没有其他方法可以实现最后看到的功能

请建议

leg*_*cia 6

"xmpp last seen"的第一个Google结果是XEP-0012:Last Activity,这是一个协议扩展,可用于查找用户上次何时在线.

你发送这样的请求:

<iq from='romeo@montague.net/orchard' 
    id='last1'
    to='juliet@capulet.com'
    type='get'>
  <query xmlns='jabber:iq:last'/>
</iq>
Run Code Online (Sandbox Code Playgroud)

得到这样的回复:

<iq from='juliet@capulet.com' 
    id='last1'
    to='romeo@montague.net/orchard'
    type='result'>
  <query xmlns='jabber:iq:last' seconds='903'/>
</iq>
Run Code Online (Sandbox Code Playgroud)

这意味着该联系人最后一次在线903秒前.从当前时间减去此值以获得"上次看到"的时间戳.

  • 请不要向名单上的每个人发送"jabber:iq:last"请求,否则当您的用户拥有真实大小的名单时,您的服务器将限制您的速度.想一想你何时需要发送这些以及为什么. (2认同)