1

我正在尝试使用libstrophe库制作一个简单的 Jabber 客户端。

到目前为止进展顺利,除了我需要澄清的一件事。

即,我应该如何(持续地)知道联系人的状态(即在线/离线),以便我可以将其显示给我的程序的用户?同样,我应该如何请求用户名册?

我查看了roster.clibstrophe 提供的示例,但只打印了一次名册。在一个真实的应用程序中,我需要不断地请求/更新它,以便在应用程序中显示用户添加的任何新联系人等。

因此,基本上,我不清楚如何确保始终在用户的联系人列表中显示最新的花名册和人员的最新状态。

例如,我是否应该在某个预定义的时间间隔请求名册?

4

1 回答 1

2

名册和存在是 2 个不同的主题。

当您登录时,您通常会请求您已经在做的花名册。当您的联系人列表在会话期间发生更改时,您会收到包含更新联系人的名册推送。这是一个节。如果另一个登录的客户操纵了我们您的客户的名册,这并不重要。

称为所有订阅联系人的在线状态与节一起出现。

您必须使用xmpp_handler_add设置处理程序

  1. 在线状态,存在节
  2. 名册推送,iq 节与命名空间 jabber:iq:roster 的查询
于 2012-07-04T12:20:54.470 回答