php 实现同一个账号同时只能一个人登录
来源:互联网 发布:成长相册制作软件 编辑:程序博客网 时间:2024/05/17 20:28
有点类似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
一,实现原理
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
0 0
- php 实现同一个账号同时只能一个人登录
- php 实现同一个账号同时只能…
- 如何保证同一个账号同时只能在一个设备登录,账号自动登录
- spring实现同一账号同一时间只能在同一个地方登录
- 实现网页同时只能有一个账号登录
- 同一个账号只能一处登录
- 一个很简单的demo来演示一个账号只能同时被一个人使用(Java实现)
- Asp.net 实现只能允许一个账号同时只能在一个地方登录
- 实现只能同时一个人登陆管理后台
- 如何做到同一个账号同一时段只能登录一个
- 取消设置Windows2003同时只能一个人远程登录
- 实现同一个用户只能有一个登录
- 用PHP实现同一个帐号不允许同时登陆,只允许一个帐号登录?
- memcahe实现账号账号不能同时登录功能
- 怎样实现同一个账户同一时间只能在一个终端登录
- eeplat平台开发中限制多个用户同时登录同一个账号的问题解决方案
- 如何处理多人同时登录同一个账号以及如何统计在线人数和访问量?
- PHP实现同一个帐号不允许多人同时重复登陆
- 嵌入式软件开发培训笔记——C高级 指针
- 旋转后图片放大变形
- atitit.验证码识别step2------剪贴板ClipBoard copy image图像 attilax总结
- NYOJ 248 && BNUOJ 4151 BUYING FEED (贪心)
- 常用正则表达式
- php 实现同一个账号同时只能一个人登录
- 面试后HR让你等通知的真相
- 第六周 项目4 成员函数、友元函数和一般函数有区别
- 欢迎使用CSDN-markdown编辑器
- C++11多线程——mutex学习
- Python Intro - type range and reshape
- 九度OJ 题目1018
- Android中ContentProvider的意义及用法
- Android -- 启动模式(singleTask启动模式)