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

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

        Js代码


        var uid = sessionStorage.getItem('userid'); // 登录平台用户id, 登录时存入
            
        var ws = new WebSocket("ws://127.0.0.1:2346");  // 连接socket

        // 初始化连接
        ws.onopen = function() {
            console.log("连接成功"); 
            if(uid != null){
                ws.send(userid);  // 发送数据到后端
            }
           
        };

        // 返回信息
        ws.onmessage = function(evt){
            var res = evt.data;
           
            if(JSON.parse(res).code == 1001){
                layer.msg(JSON.parse(res).msg,{icon:6,time:2000},function(){
                    sessionStorage.removeItem('userid');  // 清楚浏览器userid
                    window.location.href = 'url'; // 退出接口
                });
            }
        }

登录成功后

ws.send(“用户id”);

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

<?php
namespace Cli\Controller;

use Think\Controller;

use Workerman\Worker;
use Workerman\Lib\Timer;

use Redis;

// 心跳间隔时间
define('HEARTBEAT_TIME', 3600); 

class WorkermanController
{
    prot
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值