gpt4 book ai didi

javascript - 使用 ejabberd、strophe.js、strophe.muc.js 和 strophe.roster.js 的存在问题

转载 作者:行者123 更新时间:2023-11-30 08:49:32 27 4
gpt4 key购买 nike

我有一个 ejabberd 服务器,想为它编写一个网络聊天客户端。我看过像 Candy 这样的东西,但它们对于我想做的事情来说有点过头了。我只想要一些基本功能,例如即时消息、群聊和在线状态。

我使用来自 strophejs-1.0.2 的 basic.html 和 basic.js 示例文件作为我的基础。我已经设法连接到我的 jabber 服务器,加入 session ,“尝试发送消息”,离开 session ,并向我发送即时消息。其中大部分工作正常。

我遇到的问题是,当用户登录并加入 session 时,它尝试向群组发布消息但失败了。

<message xmlns="jabber:client" from="test@conference.jabber.example.com" to="user@jabber.example.com/27311205821380711229538600" type="error">
<body>test2</body>
<error code="406" type="modify">
<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></not-acceptable>
<text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">It is not allowed to send private messages to the conference</text>
</error>
</message>

如果我使用 Pidgin 以我自己的身份登录 session ,我可以在 session 中看到用户。它的名称旁边有一个图标,图标周围有一个点和多个圆圈。如果我右键单击用户,它会显示用户状态为离线。这很奇怪,因为用户在线。如果我查看 ejabberd 的管理控制台,我会看到用户在线。我试过在用户加入 session 之前手动设置状态:

connection.send($pres({type: "Available"}));

结果是:

<presence xmlns="jabber:client" from="user@jabber.example.com/27311205821380711229538600" to="user@jabber.example.com/27311205821380711229538600" type="Available"></presence>

用户仍然处于离线状态。

它在线时发送给我的 IM 在 Pidgin 中以红色文本显示。普通消息看起来是蓝色的。我认为这是因为它认为用户处于离线状态。

我有点卡住了。我想知道是否有人可以帮助我或指出正确的方向?我首先想弄清楚为什么这个用户看起来不在线,但实际上并没有离线,然后修复它。

我一直在查看有关如何查询花名册的文档。我在这方面也没有取得太大的成功。我正在寻找一个非常基本的示例来显示哪些用户在线以及他们的状态,并在有更改时回电更新。

有人可以帮帮我吗?

最佳答案

设置您的初始状态:

connection.send($pres());

要检查用户是否存在,请尝试使用“探测”:

var check = $pres({type: 'probe', to: 'friend@server.com'});        
connection.send(check);

如果 friend@server.com 在线,它应该返回如下内容:

<body xmlns="http://jabber.org/protocol/httpbind">
<presence xmlns="jabber:client" from="you@server.com/4edf83f2" to="friend@server.com/4edf83f2"></presence>
</body>

关于javascript - 使用 ejabberd、strophe.js、strophe.muc.js 和 strophe.roster.js 的存在问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19135807/

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