当前位置:   article > 正文

thinkPHP3.2 、thinkPHP5 结合workerman + Redis 实现账号单点登录_thinkphp3.2单点登录

thinkphp3.2单点登录
  • thinkPHP3.2  与workerman 结合
  1. 首先下载wokerman,放到TP项目下面的ThinkPHP/Library目录,并命名为Workerman
  2. 除Constants.php以外的所有php文件改为.class.php后缀
  3. 代码块

        Js代码

  1. var uid = sessionStorage.getItem('userid'); // 登录平台用户id, 登录时存入
  2. var ws = new WebSocket("ws://127.0.0.1:2346"); // 连接socket
  3. // 初始化连接
  4. ws.onopen = function() {
  5. console.log("连接成功");
  6. if(uid != null){
  7. ws.send(userid); // 发送数据到后端
  8. }
  9. };
  10. // 返回信息
  11. ws.onmessage = function(evt){
  12. var res = evt.data;
  13. if(JSON.parse(res).code == 1001){
  14. layer.msg(JSON.parse(res).msg,{icon:6,time:2000},function(){
  15. sessionStorage.removeItem('userid'); // 清楚浏览器userid
  16. window.location.href = 'url'; // 退出接口
  17. });
  18. }
  19. }

登录成功后

ws.send(“用户id”);

 PHP代码块: 新建一个WorkerController.class.php 控制器

  1. <?php
  2. namespace Cli\Controller;
  3. use Think\Controller;
  4. use Workerman\Worker;
  5. use Workerman\Lib\Timer;
  6. use Redis;
  7. // 心跳间隔时间
  8. define('HEARTBEAT_TIME', 3600);
  9. class WorkermanController
  10. {
  11. protected $redis =
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/257674
推荐阅读
相关标签
  

闽ICP备14008679号