gpt4 book ai didi

XMPP 根据基于位置的标准发送消息

转载 作者:行者123 更新时间:2023-12-04 14:51:10 25 4
gpt4 key购买 nike

我正在使用 XMPP 协议(protocol)、ejabberd 服务器和 PostGis 空间数据库编写自定义服务。此外,我正在将客户端写入该服务,因此我拥有完全的控制权。

用户 Alice 上线并需要向她附近的某些用户实体发布信息。所以用户 Alice 登录创建 pubsub 节点,我希望其他邻近实体自动订阅到 Alice 的节点。

当 Alice 上线时,我需要自动查询 postgis 关于附近实体的信息,并自动将它们订阅给 Alice。

你会推荐哪种方式?

谢谢艾伦

最佳答案

没有现成的标准可以做到这一点,但可以扩展 XEP-0060 来实现这一点。

在我开发的系统中,我可以订阅节点内的点+半径。这是通过 subscription options 完成的,例如:

<iq type='set'
from='francisco@denmark.lit/barracks'
to='pubsub.shakespeare.lit'
id='sub1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<subscribe node='princely_musings' jid='francisco@denmark.lit'/>
<options>
<x xmlns='jabber:x:data' type='submit'>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/pubsub#subscribe_options</value>
</field>
<field var='location#latitude'><value>52.231</value></field>
<field var='location#longitude'><value>-1.49</value></field>
<field var='location#radius'><value>10</value></field>
</x>
</options>
</pubsub>
</iq>

然后我自定义了 pubsub 服务以根据订阅选项中的区域过滤通知。当项目移动位置时,事情才会真正变得复杂,并且当先前发布给客户的项目超出其订阅区域范围时,您需要模拟撤回。

不幸的是,我不能提供任何代码,因为它不是公开的(不是我的选择),尽管它无论如何是用于 Prosody 的,而且看起来您正在寻找 ejabberd 解决方案。不过,我上面描述的原则对我来说效果很好,所以我建议至少将其作为模板解决方案。

关于XMPP 根据基于位置的标准发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10468321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com