Android基于XMPP Smack openfire 开发的聊天室(六) 【加入房间、权限错误】
2016-01-25 13:01
671 查看
Android基于XMPP Smack openfire 开发的聊天室(六) 【加入房间、权限错误】
标签:androidxmpp
2013-03-18 15:02
1507人阅读 评论(0)
收藏
举报
1,加入房间错误,通常一个就是密码错误。此时服务器会返回以下报文:
[html]
view plaincopy
<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/> 错误
解决如下:
[java]
view plaincopy
// 使用XMPPConnection创建一个MultiUserChat
MultiUserChat muc2 = new MultiUserChat(conn1,
"myroom@chat.shakespeare.lit/thirdwitch");
// 用户2使用密码加入新聊天室
// 聊天室服务将会决定要发送的历史记录数量
muc2.join("testbot2", "password");
报文如下:
[html]
view plaincopy
<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 | 进入一个房间 | 通知用户已经达到最大用户数 |
相关文章推荐
- Android基于XMPP Smack openfire 开发的聊天室(五) 【邀请、被邀请】
- Android基于XMPP Smack openfire 开发的聊天室(四) 【创建房间、表单;报文】
- Android基于XMPP Smack openfire 开发的聊天室(三) 【新旧记录、踢人】
- Gradle Android 引入os文件的3种方式
- Android基于XMPP Smack openfire 开发的聊天室(二) 【聊天信息、成员】
- 基于XMPP协议的Android即时通信系
- [Linphone Android] 应答请求
- Android基于XMPP Smack openfire 开发的聊天室(一)
- [Linphone Android] 带视频的呼叫
- android ADB很有用的命令,看你用过几个?
- [Linphone Android] 登录实现
- 【Android源码-PMS】(三)ApplicationInfo类解析
- Android程序打包过程
- Android中应用程序清除data/data,清除cache,超详细
- Android系统之路(初识MTK) ------ make update-api长按Power键添加Reboot项/内置默认Ringtone/SMS/Notification/Alarm删除系统铃声
- Android开发中通过源码彻底理解ListView工作原理【超详细】
- Android Studio 常见问题
- 使用ViewFlipper实现页面自动切换
- android自定义view实现流式布局(FlowLayout)和热门标签
- Android开发记录16-友盟第三方登录、分享实现