Android基于XMPP Smack openfire 开发的聊天室(六) 【加入房间、权限错误】

1,加入房间错误,通常一个就是密码错误。此时服务器会返回以下报文:

[html]  view plain copy print ?
  1. <presence  
  2.     from='darkcave@chat.shakespeare.lit'  
  3.     to='hag66@shakespeare.lit/pda'  
  4.     type='error'>  
  5.   <x xmlns='http://jabber.org/protocol/muc'/>  
  6.   <error type='auth'>  
  7.     <not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>  
  8.   </error>  
  9. </presence>  


 

官网意思:如果房间要求密码验证而用户不能提供(或密码错误), 服务必须 MUST 拒绝访问这个房间并且通知该用户它们是未被授权的; 具体方法是返回一个类型为"error"的出席信息节并标明 <not-authorized/> 错误

解决如下:

[java]  view plain copy print ?
  1. // 使用XMPPConnection创建一个MultiUserChat  
  2.             MultiUserChat muc2 = new MultiUserChat(conn1,  
  3.                     "myroom@chat.shakespeare.lit/thirdwitch");  
  4.   
  5.             // 用户2使用密码加入新聊天室  
  6.             // 聊天室服务将会决定要发送的历史记录数量  
  7.             muc2.join("testbot2""password");  


报文如下:

[html]  view plain copy print ?
  1. <presence  
  2.             from='hag66@shakespeare.lit/pda'  
  3.             to='myroom@chat.shakespeare.lit/thirdwitch'>  
  4.           <x xmlns='http://jabber.org/protocol/muc'>  
  5.             <password>password</password>  
  6.           </x>  
  7.         </presence>  


2,权限错误:

这个没文本,当然如果你加入一个房间后,要注意的是,如果第一次加入别人的房间,没有被授予成员权限的时候,你仅仅是一个游客。除了说话。也不能检索聊天室成员的信息,仅可以获取成员的昵称,除此别无其他。通常不注意会用这样贸然去获取成员信息是,会照成错误,返回402(进入房间后获取超越权限错误:权限不足)等信息。以下是其他错误信息

 

401ErrorPresence 进入一个房间

通知用户需要密码

403ErrorPresence 进入一个房间通知用户他或她被房间禁止了
404ErrorPresence 进入一个房间通知用户房间不存在
405ErrorPresence 进入一个房间通知用户限制创建房间
406ErrorPresence 进入一个房间通知用户必须使用保留的房间昵称
407ErrorPresence 进入一个房间通知用户他或她不在成员列表中
409ErrorPresence 进入一个房间通知用户他或她的房间昵称正在使用或被别的用户注册了
503ErrorPresence 进入一个房间通知用户已经达到最大用户数

用户聊天的使用一个 <status/> 元素(特指, <status/> 元素的的 'code' 属性  ) 来传达关于用户在一个房间里的状态的信息.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值