XMPP名册状态,自定义名册和未知用户之间的消息传递

阿拉洛

我对XMPP并不陌生,最近决定尝试在移动平台上制作IM。关于XMPP,我有几个问题,在最近阅读之后,我似乎找不到答案(我正在考虑将ejabberd或Tigase用作服务器,因此以下问题将假设服务器端是其中之一):

  1. 我已经读过,在XMPP中,将另一个用户添加到花名册中是由客户端向服务器发送花名册设置请求完成的,然后服务器将向订阅方客户端添加订阅状态为“从”和“到”的花名册项目和分别添加客户端。为了使花名册项目的预订值变为“两者”,要添加的用户需要接受发送的请求。这样对吗?

  2. 以我的理解,一个用户可以通过XMPP中的JID识别并添加另一个用户,如果我将此问题放在WhatsApp的情况下,那就是用户的电话号码。这样对吗?

  3. 是否可以使服务器自定义客户花名册?例如,服务器将使用IM处理所有客户端,并根据某种逻辑(例如,他们可能彼此认识的人)而不是仅由用户添加的联系人返回花名册?为了更清楚地阐明这一点,就像您可能认识的Facebook人士一样。因此,在这种情况下,每次客户端登录并请求花名册时,服务器都会返回用户可能会发现要与之交谈的人员的列表。

  4. 根据以前的理解,假设A发送了添加B的请求,但B尚未接受,则用户A是否可以查看另一个用户B是否在线?在B接受请求之前向B发送任何消息怎么样?

谢谢你的帮助!

凯夫

我已经读过,在XMPP中,将另一个用户添加到花名册中是由客户端向服务器发送花名册设置请求完成的,然后服务器将向订阅方客户端添加订阅状态为“从”和“到”的花名册项目和分别添加客户端。为了使花名册项目的预订值变为“两者”,要添加的用户需要接受发送的请求。这样对吗?

有两个位。一种是添加到名册中,另一种是获得状态订阅。通过发送在线状态订阅请求来建立在线状态订阅(这样做,联系人将自动添加到名册中)。另一方面,名册集可操纵您的名册,但不会引起状态订阅。

以我的理解,一个用户可以通过XMPP中的JID识别并添加另一个用户,如果我将此问题放在WhatsApp的情况下,那就是用户的电话号码。这样对吗?

对于XMPP,是的,寻址是通过JID完成的。我不知道Whatsapp的寻址方式如何。

是否可以使服务器自定义客户花名册?例如,服务器将使用IM处理所有客户端,并根据某种逻辑(例如,他们可能彼此认识的人)而不是仅由用户添加的联系人返回花名册?为了更清楚地阐明这一点,就像您可能认识的Facebook人士一样。因此,在这种情况下,每次客户端登录并请求花名册时,服务器都会返回用户可能会发现要与之交谈的人员的列表。

在封闭环境中使用服务器自定义将是可能的。它不能在公共网络上工作,因为状态订阅是双向的,您最终将获得一类看不到的人,当他们在线时。另一方面,您可以轻松地设置一个用户搜索服务,该服务将返回建议,而客户可以随意添加它们。

根据以前的理解,假设A发送了添加B的请求,但B尚未接受,则用户A是否可以查看另一个用户B是否在线?在B接受请求之前向B发送任何消息怎么样?

一旦B接受了A的状态订阅,A就只能看到B是否在线。在标准XMPP中,您不需要状态订阅来发送消息(尽管某些部署可能会更改此设置,例如Google的)。

有关这些类型问题的概述,建议您阅读XMPP权威指南(O'Reilly)(免责声明,我是其中之一),或阅读相关的RFC(6120、6121、6122)和XEP系列(自然,我认为这本书更容易阅读)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

XMPP名册状态,自定义名册和未知用户之间的消息传递

来自分类Dev

获取Xmpp名册列表

来自分类Dev

如何找到不在名册中的用户的状态?

来自分类Dev

XMPP名册中的最大用户数?

来自分类Dev

名册组和Smack中的多用户聊天室(XMPP库)有什么区别?

来自分类Dev

用户未经授权时 Laravel 护照自定义错误消息和状态代码

来自分类Dev

获取名册列表XMPP框架

来自分类Dev

如何在xmpp中将用户添加到名册中?

来自分类Dev

如何在xmpp中将用户添加到名册中?

来自分类Dev

用户定义的执行与自定义消息

来自分类Dev

systemd自定义状态消息?

来自分类Dev

如何在iOS中的开火xmpp中从另一端的花名册中删除聊天用户

来自分类Dev

无法从XMPP服务器获取花名册列表

来自分类Dev

XMPP服务器和自定义API

来自分类Dev

自定义错误消息和位置

来自分类Dev

到期和提醒自定义消息

来自分类Dev

Chrome自定义标签:图标状态和对用户操作的响应

来自分类Dev

在ejabberd的共享名册中添加所有用户

来自分类Dev

在Jinja2和Flask之间传递自定义python对象

来自分类Dev

传递来自 JSF 自定义组件的验证消息

来自分类Dev

Mongooseim 名册 webhook 后端

来自分类Dev

iOS自定义键盘-保留外观之间的状态

来自分类Dev

Laravel和Vuetify未知自定义元素

来自分类Dev

电子和Vue-未知的自定义元素

来自分类Dev

登录后为每个用户的自定义(可编辑)消息

来自分类Dev

登录后为每个用户的自定义(可编辑)消息

来自分类Dev

如何自定义“用户名已存在”消息?

来自分类Dev

Keycloak 关于用户临时锁的自定义消息

来自分类Dev

用户的会话状态服务器自定义超时

Related 相关文章

热门标签

归档