Javascript 使用ejabberd、strophe.js、strophe.muc.js和strophe.lotus.js出现问题

Javascript 使用ejabberd、strophe.js、strophe.muc.js和strophe.lotus.js出现问题,javascript,client,ejabberd,strophe,user-presence,Javascript,Client,Ejabberd,Strophe,User Presence,我有一个ejabberd服务器,想为它编写一个web聊天客户端。我看过糖果之类的东西,但对于我想做的事情来说,它们有点过头了。我只想要一些基本功能,如即时消息、群聊和状态 我使用strophejs-1.0.2中的basic.html和basic.js示例文件作为基础。我已经成功地连接到我的jabber服务器,加入一个会议,“尝试并发送消息”,离开会议,并向我发送即时消息。这其中大部分是有效的 我遇到的问题是,当用户登录并加入会议时,它试图向该组发布消息,但失败了 <message xmln

我有一个ejabberd服务器,想为它编写一个web聊天客户端。我看过糖果之类的东西,但对于我想做的事情来说,它们有点过头了。我只想要一些基本功能,如即时消息、群聊和状态

我使用strophejs-1.0.2中的basic.html和basic.js示例文件作为基础。我已经成功地连接到我的jabber服务器,加入一个会议,“尝试并发送消息”,离开会议,并向我发送即时消息。这其中大部分是有效的

我遇到的问题是,当用户登录并加入会议时,它试图向该组发布消息,但失败了

<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>
因此:

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

用户仍处于脱机状态

当它在线时,它发送给我的即时消息是用洋泾浜语写成的红色文本。普通消息看起来是蓝色的。我认为这是因为它认为用户处于脱机状态

我有点困了。我想知道是否有人能帮助我或给我指出正确的方向?首先,我想弄清楚为什么这个用户看起来离线,而它似乎不离线,并修复它

我一直在看关于如何查询名册的文档。我在这方面也没有太大的成功。我正在寻找一个非常基本的示例,以显示哪些用户处于联机状态以及他们的状态,如果有更改,将通过回拨进行更新


有人能帮我吗?

要设置您的初始状态:

connection.send($pres());
要检查用户的状态,请尝试使用“probe”:

如果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>

要设置您的初始状态:

connection.send($pres());
要检查用户的状态,请尝试使用“probe”:

如果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>


+1设置是否存在。您可以使用ping插件并进行乒乓发送响应,以查看用户是否在线。看看花名册插件也。至于Pidgin和web客户端之间的问题,我在任何桌面客户端和我的web界面之间都有相同的问题,但是,我可以在设置状态的2。

+1之间聊天。您可以使用ping插件并进行乒乓发送响应,以查看用户是否在线。看看花名册插件也。至于你在Pidgin和web客户端之间的问题,我在任何桌面客户端和我的web界面之间都有相同的问题,但是,我可以在2个客户端之间聊天。

Hi,因此我可以使用ping插件检查任何用户是否也连接了?如果用户在线,ping将以“pong”响应,然后,您可以使用pong上的cb功能启动聊天或您计划使用“pong”执行的任何操作。谢谢!在线你指的是在线状态,或者连接已连接?(如果一个人已连接,但状态设置为“请勿打扰”或“脱机”怎么办?)我指的是在线状态,如“已连接”,但我没有尝试其他状态类型(在我的应用程序中没有这种需要),因此我无法告诉你可能得到或可能得不到的响应。我阅读的方式,它只是决定了连通性#2根据要求:“确定任意两个XMPP实体之间的端到端连接”。我想你会使用状态和/或订阅状态来确定某人的可用性状态。嗨,这样我就可以使用ping插件来检查任何用户是否也连接了?如果用户在线,ping将以“pong”响应,然后你可以使用pong上的cb功能来启动聊天或你计划用“pong”做的任何事情谢谢在线你指的是在线状态,或者连接已连接?(如果一个人已连接,但状态设置为“请勿打扰”或“脱机”怎么办?)我指的是在线状态,如“已连接”,但我没有尝试其他状态类型(在我的应用程序中没有这种需要),因此我无法告诉你可能得到或可能得不到的响应。我阅读的方式,它只是决定了连通性#2根据要求:“确定任意两个XMPP实体之间的端到端连接”。我想你会使用状态和/或订阅状态来确定某人的可用性状态。朋友将以何种方式接收?朋友将以何种方式接收?