Android基於XMPP Smack openfire 開發的聊天室(六) 【加入房間、許可權錯誤】
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 AVC錯誤修改許可權方法Android
- 基於tp3.2.3開發的許可權管理系統,路由,微信,cdn,許可權路由
- 基於本人開發的許可權系統開發的企業站
- 基於XMPP協議開發Android即時通訊軟體協議Android
- React基於RBAC的許可權控制React
- casbin基於golang的許可權控制Golang
- iOS實現XMPP通訊(一)搭建OpenfireiOS
- Android開發-更”聰明”的申請許可權方式Android
- Android SELinux許可權AndroidLinux
- Android 通知許可權Android
- Bauth許可權系統,基於ThinkPHP5開發 - 一個優秀的整合許可權管理的通用後臺PHP
- 基於RBAC的許可權管理系統
- 基於RBAC的許可權設計模型模型
- 基於 PHP 反射的許可權匯入PHP反射
- 基於casbin的RBAC許可權實踐
- C#連線基於Java開發IM——OpenfireC#Java
- f-admin——基於 Laravel 框架開發的基礎許可權後臺系統Laravel框架
- android動態許可權到自定義許可權框架Android框架
- 基於RBAC實現許可權管理
- 基於RBAC做資料許可權
- android 許可權庫EasyPermissionsAndroid
- CATIA許可證時間錯誤的解決辦法
- Mac修復多個檔案錯誤許可權的方法?Mac
- 基於 PHP-Casbin 的 ABAC 許可權控制PHP
- 基於Linux許可權提升的資訊收集Linux
- Spring Security 基於URL的許可權判斷Spring
- 基於vue(element ui) + ssm + shiro 的許可權VueUISSM
- 基於位運算的許可權設計
- Android 中的危險許可權Android
- Android14 關於讀寫許可權 (Vivo)Android
- 小知識:軟體開發的許可權控制和許可權驗證
- shiro教程(1):基於url許可權管理
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- Android學習筆記--基於XMPP的即時通訊Android筆記
- Android6.0------許可權申請管理(單個許可權和多個許可權申請)Android
- 基於vue(element ui) + ssm + shiro 的許可權框架VueUISSM框架
- TP 基於選單的許可權控制CMS框架框架
- 基於RABC模型的SpringSecurity許可權控制能力模型SpringGse
- android 許可權元件設計Android元件