• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php实现同一个账号同时只能一个人登录

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

有点类似QQ,二台电脑登录,一台会把另一台挤掉线,并提示其他地点登录信息。
一,实现原理
1,用户在电脑A登录,session信息存放在redis当中,并将session_id存到mysql数据库中。
2,同一用户在电脑B登录,验证完用户名和密码后,将该用户信息从数据库读出,取得用户在电脑A登录的session_id,然后在到redis中验证session是否过期。
3,如果过期,不用openfire推送提示信息。如果没有过期,php利用openfire推送消息后,在将redis中用户在电脑A中登录的session删除掉,删除后,在将用户在电脑B登录的个人信息放到session中,并将电脑B登录的session_id更新到数据库中,在这里一定要先发送推送,然后在清空session,不然用户在电脑A收不到xmpp发过来的消息。
注意:
openfire是java cms的一种,自身有数据库,您创建的用户表根openfire自带的用户表之间要建立某种联系(如:手机号,邮箱等),方便信息推送。
同一session_id肯定是在相同媒介上登录的,这个时候,也不用更新数据库和推送消息

下面简单说一下安装过程,以及要注意的地方。
二,安装所用到的工具
# yum install php php-fpm nginx mysql mysql-server redis php-redis php-devel php-pdo php-mysql  
修改session存储方式:

# vim /etc/php-fpm.d/www.conf   


;php_value[session.save_handler] = files   //注释掉旧的
;php_value[session.save_path] = /var/lib/php/session


php_value[session.save_handler] = redis  //添加以下内容
php_value[session.save_path] = "tcp://127.0.0.1:6379"

 

启动服务后,如果以下内容说明,session存redis成功了

 

 

openfire下载地址:http://www.igniterealtime.org/downloads/

 

# rpm -ivh ./*.rpm   //下载的是rpm安装包  
openfire启动后,然后访问http://ip:9090,一步一步配置就成了,有一点要注意就是数据库的编码。
关于redis的php操作和命令行操作,请参考:
http://blog.51yip.com/?s=redis
---------------------
作者:echojson
来源:CSDN
原文:https://blog.csdn.net/echojson/article/details/45073535
版权声明:本文为博主原创文章,转载请附上博文链接!


---------------------
作者:echojson
来源:CSDN
原文:https://blog.csdn.net/echojson/article/details/45073535
版权声明:本文为博主原创文章,转载请附上博文链接!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
帝国cms的list.var中使用php函数发布时间:2022-07-10
下一篇:
CentOS7yum安装php5.6发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap