ejabberd 是对xmpp协议的完全实现,那么单纯的ejabberd是不提供该功能限制的,但是从我们的xmpp协议则可以完全的解决这个问题,我们通过jid对它进行限制,下面可以看一下jid的解释:
完整JID###
完整的Jid包括 Username@Domain/resource
Node/Username###
用户名/节点 用户的基本标识
Domain###
登陆的XMPP服务器域名
Resource###
重点就是这里!!!!!
资源/来源,用于区别客户端来源,xmpp协议设计为可多客户端同时登陆,resource就是用于区分同一用户不同端登陆
Bare###
除去resource部分,包含Username@Domain
当我们调用Client端的登陆jid的格式是 比如 wanglei@localhost/wanglei_macbook
另外如果我在windows下用我同样的账号jid是这样
wanglei@localhost/wanglei_windows
如果我们从ejabberd端将resource修改成一致的或者从client端调用登陆的时候统一resource 则macbook登陆后windows再登陆就会把macbook的登陆用户顶下来掉线,达到我们的功能实现。
网友评论