Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证

2年前

阅读 3678

评论 0

喜欢 0

### 0、前言

前面基本的WebSocket操作,我们基本都已经掌握了,接下来我们要学习的是怎么用`user_id`去关联一个fd凭证呢?

按我们的思路应该是在`data`存储器中,将`fd`替换成`user_id`,但这样在server的`close`事件中,就需要用遍历的方式去读取关闭的对应连接了。

这样费时的操作,肯定不是我们想要的。

实际上,我们只需要新增一个`open`连接存储器记录`fd`即可,然后在`code=1`的时候用`user_id`更新到原来的`data`存储器中即可。

### 1、注意事项

① 客户端全部使用`user_id`作为身份凭证

② 服务端新建一个open存储器

③ 服务端在`code=1`时,在从open存储器中读取`fd`凭证写入data存储器中。

④ 服务端在`close`事件中记得清除已经关闭的open存储器凭证,防止存储器无限增大。

### 2、客户端代码修改:

```

// +----------------------------------------------------------------------

// 小黄牛blog - websocket

// +----------------------------------------------------------------------

// Copyright (c) 2018 https://xiuxian.junphp.com All rights reserved.

// +----------------------------------------------------------------------

// Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )

// +----------------------------------------------------------------------

// Author: 小黄牛 <1731223728@qq.com>

// +----------------------------------------------------------------------

session_start();

# 模拟用户登录

if (!empty($_POST['nice'])) {

$data = [

'nice' => $_POST['nice'],

'id' => uniqid(),

];

$_SESSION['user'] = $data;

echo json_encode($data, JSON_UNESCAPED_UNICODE);

exit;

# 模拟用于退出登录

} else if (!empty($_POST['out'])) {

$_SESSION['user'] = '';

}

?>

Swoole+Websocket案例 - 小黄牛

html,body{margin:0;padding:0;font-size:13px}

.left{width: 20%;height: 600px;border: 1px solid #ddd;float: left;}

.right{width: 59.7%;height: 400px;border: 1px solid #ddd;border-left: 0px;float: left;overflow: auto;}

.bottom{width: 79.7%;height: 199px;border: 1px solid #ddd;border-left: 0px;border-top: 0px;float: left;}

#content{width: 99.5%;height: 165px;}

.blue{color:blue}

.red{color:red}

.div_left{width:100%;float:left}

.div_right{width:100%;float:left;text-align: right;}

.div_centent{width:100%;float:left;text-align: center;}

#USER{width:100%;height: 40px;line-height: 40px;border-bottom: 1px solid #ddd;float:left}

#error{width:20%;height:400px;float: left;overflow: auto;}

  • 登录
  • 退出
模拟会员登录

websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...相关推荐

  1. java连接zookeeper_java 学习笔记(四) java连接ZooKeeper

    public class Demo2 { public static void main(String[] args) { String connectString = "192.168.1 ...

  2. 【K210】K210学习笔记七——使用K210拍摄照片并在MaixHub上进行训练

    [K210]K210学习笔记七--使用K210拍摄照片并在MaixHub上进行训练 前言 K210准备工作 K210如何拍摄照片 准备工作 拍摄相关代码定义 用K210拍摄到的照片在MaixHub平台 ...

  3. window的dos命令学习笔记 七

    文章目录 一.dos历史学习笔记(后期整合到这里,我想能学到这里的应该不多了,嘿嘿,加油) 二.执行状态返回值(`%errorlevel%`,和shell中`$?`相似): 三.视窗 1.color ...

  4. ESP32学习笔记(七) 复位和时钟

    ESP32学习笔记(七) 复位和时钟 目录: ESP32学习笔记(一) 芯片型号介绍 ESP32学习笔记(二) 开发环境搭建 VSCode+platformio ESP32学习笔记(三) 硬件资源介绍 ...

  5. 学习笔记:搭建sftp服务

    学习笔记:搭建sftp服务 前言 环境 操作系统 主要软件 步骤 下载软件 安装软件 配置软件 重启服务 测试 总结 问题 前言 本文事无巨细的记录了搭建和测试的完整过程,叙述较为冗余,为了提高阅读效 ...

  6. OpenCV学习笔记(七)——图像梯度及边缘检测

    图像梯度计算的是图像变化的速度.对于图像的边缘部分,其灰度值变化较大,梯度值也较大:相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小.一般情况下,图像梯度计算的是图像的边缘信息. ...

  7. Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件

    Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件 用Polyworks脚本开发,没有高级语言的支持,功能难免单一,一些比较复杂的交互实现不了,界面和报告也很 ...

  8. Android学习笔记第五篇--网络连接与云服务(一)

    Android学习笔记第五篇–网络连接与云服务 第一章.无线连接设备 ​ 除了能够在云端通讯,Android的无线API也允许在同一局域网内的设备通讯,**甚至没有连接网络,而是物理具体相近,也可以相 ...

  9. Typescript 学习笔记七:泛型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

最新文章

  1. 瑞雪时晴,不亦快哉 ——图灵十一月月刊
  2. mysql 用户命令_MySQL命令行新建用户
  3. Java培训教程之对象的创建与使用
  4. mysql参数配置调优详解配置(1)
  5. [转载] flutter开发桌面程序_在开始使用Flutter开发应用程序之前要了解的5条提示
  6. Q120:PBRT-V3,“直接光照”积分器(14.3章节)(翻译不下去了)
  7. SNMP-简单网络管理协议
  8. ureport2学习笔记
  9. 联想电脑自动锁屏解决方法
  10. 应用程序正常初始化(0xc0150002)失败。请单击“确定”,终止应用程序
  11. 魂斗罗归来大觉机器人_魂斗罗归来挑战Boss血量分析 魂斗罗归来Boss模式挑战攻略...
  12. ALM / QC 64-bit Patch 12 S-Chinese
  13. mysql 2002_解决MySQL报错ERROR 2002 (HY000)
  14. 智能合约审计之DDOS概述
  15. 应用图标变小及换图标不生效的问题
  16. 基于钱搜索算法的BCH译码
  17. Latex学习笔记 (Ex4)希腊字母、罗马字母一览表
  18. Windows下设置桌面壁纸的代码(QT版)
  19. C++ Combo Box控件用法
  20. R语言数据分析笔记——t检验(含正态性检验和方差齐性检验在SPSS和R语言中的操作t检验(单样本、双独立样本、配对样本)在Excel、SPSS、R语言中的操作)

热门文章

  1. 2017年回顾及总结
  2. Zabbix 安装agent
  3. 一文看懂边缘云在广电行业的应用
  4. 3类代码安全风险如何避免?
  5. 揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿
  6. 稳定性保障6步走:高可用系统大促作战指南!
  7. 冠赢网络:游戏盾彻底解决DDoS/CC攻击
  8. 【人工智能】AI如何把招人效率提高四成
  9. 阿里云应用高可用 AHAS 正式商用,可一键提升云上应用可用性
  10. 阿里云护航罗振宇2018“时间的朋友”跨年演讲,与千万观众一起跨年 1