zoukankan      html  css  js  c++  java
  • 关于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,防止重复登录。

     
  • 相关阅读:
    linux学习之用户的切换
    Skyline桌面二次开发之路径漫游(C#)
    AppDomain.CurrentDomain.BaseDirectory项目目录相关操作
    IoC模式(依赖、依赖倒置、依赖注入、控制反转)
    .net core 2.1-----Sql Server数据库初体验
    WPF成长之路------翻转动画
    C#之通过图片地址下载图片
    g'g'gggg
    Java中的多态
    接口
  • 原文地址:https://www.cnblogs.com/unqiang/p/6073260.html
Copyright © 2011-2022 走看看