1,加入房间错误,通常一个就是密码错误。此时服务器会返回以下报文:
<presence
from='darkcave@chat.shakespeare.lit'
to='hag66@shakespeare.lit/pda'
type='error'>
<x xmlns='http://jabber.org/protocol/muc'/>
<error type='auth'>
<not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</presence>
官网意思:如果房间要求密码验证而用户不能提供(或密码错误), 服务必须 MUST 拒绝访问这个房间并且通知该用户它们是未被授权的; 具体方法是返回一个类型为"error"的出席信息节并标明 <not-authorized/> 错误
解决如下:
// 使用XMPPConnection创建一个MultiUserChat
MultiUserChat muc2 = new MultiUserChat(conn1,
"myroom@chat.shakespeare.lit/thirdwitch");
// 用户2使用密码加入新聊天室
// 聊天室服务将会决定要发送的历史记录数量
muc2.join("testbot2", "password");
报文如下:
<presence
from='hag66@shakespeare.lit/pda'
to='myroom@chat.shakespeare.lit/thirdwitch'>
<x xmlns='http://jabber.org/protocol/muc'>
<password>password</password>
</x>
</presence>
2,权限错误:
这个没文本,当然如果你加入一个房间后,要注意的是,如果第一次加入别人的房间,没有被授予成员权限的时候,你仅仅是一个游客。除了说话。也不能检索聊天室成员的信息,仅可以获取成员的昵称,除此别无其他。通常不注意会用这样贸然去获取成员信息是,会照成错误,返回402(进入房间后获取超越权限错误:权限不足)等信息。以下是其他错误信息
401 |
Error |
Presence |
进入一个房间 |
通知用户需要密码
|
403 |
Error |
Presence |
进入一个房间 |
通知用户他或她被房间禁止了 |
404 |
Error |
Presence |
进入一个房间 |
通知用户房间不存在 |
405 |
Error |
Presence |
进入一个房间 |
通知用户限制创建房间 |
406 |
Error |
Presence |
进入一个房间 |
通知用户必须使用保留的房间昵称 |
407 |
Error |
Presence |
进入一个房间 |
通知用户他或她不在成员列表中 |
409 |
Error |
Presence |
进入一个房间 |
通知用户他或她的房间昵称正在使用或被别的用户注册了 |
503 |
Error |
Presence |
进入一个房间 |
通知用户已经达到最大用户数 |
用户聊天的使用一个 <status/> 元素(特指, <status/> 元素的的 'code' 属性 ) 来传达关于用户在一个房间里的状态的信息.
分享到:
相关推荐
android studio 基于XMPP,Openfire,Smack聊天demo 基于openfire3.9.3
Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现.zip
高仿android qq客户端,基于xmpp openfire smack。难得的即时通信学习源码。 介绍链接: http://blog.csdn.net/shimiso/article/details/11225873
android openfire xmpp smack即时通讯,包括:聊天发生文字,表情,图片,语音。添加删除好友,消息提醒,群聊,邀请好友进入房间,聊天记录保存等等。界面美观。最后说明:此demo是在网上一个叫EIM企信通的demo基础...
Android-XMPP-openfire-实现IM
关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可以向openfire服务器注册用户,发送消息,并且可以通过监听器获得此用户的应答消息,以及构建聊天室,分组,个人通讯录等等。
1.聊天 2.离线消息 3.添加,删除好友 4.添加,移动好友分组 5.设置昵称 6.监控好友状态 7.网络断开系统自动重连接 8.收到添加好友请求消息处理 9.收到系统广播消息处理 10.查看历史聊天记录 11.消息弹出提醒,和小...
基于xmpp openfire smack 的即时通信客户端,高仿qq,难得的学习资源。 资源介绍:http://blog.csdn.net/shimiso/article/details/11225873
先说一下为什么要写这篇博客,是因为本人在周末在研究XMPP和OpenFire,从网上下载了个Demo,但跑不起来,花了很长时间,经改造后,跑起来了,写个篇博文也是希望后边学习XMPP和OpenFire的同学下载后直接运行,少走...
本项目是一套基于android+asmack+openfire+xmpp的安卓即时聊天服务端,项目直连google talk服务器,可以使用谷歌帐号登录客户端,测试需要至少两个谷歌帐号。在程序里添加好友即可聊天。聊天核心功能使用的smack库
XMPP+Openfire4.5.1+Smack4.3.4+MySql,支持手机对手机,手机对PC(Spark)的消息收发
Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现。实现了注册,登录,读取好友列表,搜索好友,添加分组,添加好友,删除好友,修改心情,两个客户端之间的信息发送与接收,监听发送来的好友...
android openfire xmpp smack即时通讯,包括:聊天发生文字,表情,图片,语音。添加删除好友,消息提醒,群聊,邀请好友进入房间,聊天记录保存等等。界面美观。最后说明:此demo是在网上一个叫EIM企信通的demo基础...
一个简单的Demo,Android工程,实现了启动Service,登陆Openfire服务器,实现简单的消息推送功能。
Asmack是smack的android版,是对xmpp协议进行了封装,并提供了丰富的api,简化了操作。Openfire是一个开源的IM服务器,基于Xmpp实现。换句话说使用xmpp开发即时通讯应用的话,服务器端已经开发好了,就是openfire。
android openfire xmpp smack即时通讯,包括:聊天发生文字,表情,图片,语音等.zip
android基于xmpp协议的即时聊天demo 可加好友,可即时聊天,可运行
基于Smack3.0.4+ Openfire3.10.2开发之Android 客户端之三(用户登入、用户注册与XMPP 服务器交互)。
基于xmpp协议的openfire android客户端,登录,接受消息