关于ejabberd限制单点登录
ejabberd 是對xmpp協議的完全實現,那么單純的ejabberd是不提供該功能限制的,但是從我們的xmpp協議則可以完全的解決這個問題,我們通過jid對它進行限制,下面可以看一下jid的解釋:
完整JID
完整的Jid包括 Username@Domain/resource
Node/Username
用戶名/節點 用戶的基本標識
Domain
登陸的XMPP服務器域名
Resource
重點就是這里!
資源/來源,用于區別客戶端來源,xmpp協議設計為可多客戶端同時登陸,resource就是用于區分同一用戶不同端登陸
?
除去resource部分,包含Username@Domain
當我們調用Client端的登陸jid的格式是 比如 wanglei@localhost/wanglei_macbook
另外如果我在windows下用我同樣的賬號jid是這樣
wanglei@localhost/wanglei_windows
如果我們從ejabberd端將resource修改成一致的或者從client端調用登陸的時候統一resource 則macbook登陸后windows再登陸就會把macbook的登陸用戶頂下來掉線,達到我們的功能實現。
?
即當Username 和?resource 相同的時候,第二次登錄的設備會把第一次登錄的設備擠掉。
?
還有一個關鍵點:
在ejabberd.yml 配置文件中,max_user_sessions ?10
含有?max_user_sessions 這個參數,其含義為:允許單個用戶的同步會話的最大數目. ejabberd默認設置的是10 。
?
有相關的max_user_sessions設置每個用戶最多登錄的session數目,建議設置小于等于2,防止重復登錄。
?
?
?
轉載于:https://www.cnblogs.com/unqiang/p/6073260.html
總結
以上是生活随笔為你收集整理的关于ejabberd限制单点登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (王道408考研数据结构)第二章线性表-
- 下一篇: (王道408考研数据结构)第二章线性表-