PHP 微信小程序 WebSocket MySQL Redis实现聊天功能

2023-10-26

1.Mysql 实现离线消息池。如果一个用户不在线,则其他用户发送给他的消息暂时存储在mysql。待该用户上线时,再从离线消息池取出发送。

2.Redis 实现每个连接websocket的服务都唯一绑定一个用户。通过用户账号 = fd 存到redis中。

微信小程序:

 

  

 websocket.php代码:

<?php
//创建WebSocket Server对象,监听0.0.0.0:9501端口
$ws = new Swoole\WebSocket\Server('0.0.0.0', 9501);

//连接Redis
$redis=new Redis();
$redis->connect('服务器地址',6379);

//连接MySQL
$con=mysqli_connect("服务器地址","数据库名称","数据库密码","数据表名称"); 

//监听WebSocket连接打开事件
$ws->on('Open', function ($ws, $request)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 微信小程序 WebSocket MySQL Redis实现聊天功能 的相关文章

  • 如何将 Laravel 连接到 Firebase

    我正在使用 Laravel 和 Firebase 我需要将 Laravel 连接到 Firebase 但遇到此错误 调用未定义的方法 Kreait Firebase Factory getDatabase
  • Drupal 模板/主题资源或建议?

    我有兴趣为我正在开发的 Drupal 网站创建自定义主题 我是 Drupal 的新手 但是我在处理构建主题 CSS PHP HTML 所需的基本概念方面拥有相当多的经验 所以 我的问题是 我从哪里开始 有创建 Drupal 主题的规范指南吗
  • 我无法访问 XAMPP phpMyAdmin;它说:错误 MySQL 说:文档无法连接:无效设置

    完整错误消息 Error MySQL said Documentation Cannot connect invalid settings Connection for controluser as defined in your conf
  • 如何在代码输出中显示 PHP 错误?

    当通过浏览器执行PHP页面时 我们只会得到输出 但不会得到代码中的错误 如何查看后端代码发生的错误 我在代码中使用以下内容进行错误报告 error reporting E ALL E ALL ini set display errors 1
  • 在 csv 中查找数值

    我需要检查特定的数字 ID 是否在给定的字符串或逗号分隔值中 myVal 20 字符串可以仅包含多个值中的一个值 以逗号分隔 str 20 str 20 33 5 str 220 33 5 4420 本来我想到用strpos 但是20可以在
  • PHP 联系表单未提交

    您好 我之前曾成功使用过这个非常简单的 php 联系脚本 但当我尝试在新的 HTML 页面上实现它时 表单不会提交 任何人都可以看到任何明显的错误吗 任何帮助将非常感激 这是表单的 html div div
  • 使用 PHPUnit 模拟对象是否有可能期望调用神奇的 __call() 方法?

    我在测试中有一个模拟对象 真实的对象 PageRepository 使用 call 实现了一个神奇的方法 因此如果您调用 pageRepository gt findOneByXXXX value of field XXXX 它将在数据库中
  • PHP 中“或”的奇怪用法

    PHP s or是一个奇怪的关键字 这是一个让我感到困惑的代码片段 echo 0 or 1 prints 1 foo 0 or 1 echo foo prints 1 foo 0 or 1 echo foo prints 0 for som
  • PHP GoDaddy 最大执行时间不起作用

    默认 maximun execution time 为 120 秒 我已按照所有说明创建 php ini 文件并将其放置在正确的位置 public html 中 我运行 phpinfo 发现 maximun execution time 已
  • Woocommerce 从 woocommerce_add_to_cart_fragments 传回的错误片段

    我正在创建自定义 WooCommerce 购物车 并且更新购物车商品的数量工作正常 唯一的问题是它不会自动刷新 只有在页面加载后才起作用 我当前的代码使用woocommerce add to cart fragments挂钩并使用传入的 f
  • 使 Web 表单输入在各种情况下安全的正确方法是什么?

    你们都认为什么是正确的 阅读 最灵活 松散耦合 最健壮等 方法来使来自 Web 的用户输入安全地用于 Web 应用程序的各个部分 显然 我们可以为每个上下文 数据库 屏幕显示 保存在磁盘上等 使用各自的清理功能 但是是否有一些通用的 模式
  • 解决错误 413 请求实体太大

    我正在从事的项目允许我们的员工将大文件上传到我们的共享主机并获取下载链接 问题是我们的托管拒绝更改共享托管的 LimitRequestBody 还有其他解决方案可以解决 LimitRequestBody 或任何其他方法来完成这项工作吗 有两
  • 我可以解密通过 PHP 加密的 C++ 数据吗?

    我正在使用 mcrypt encrypt 和 base64 encode 来加密 php 中的数据 我尝试用C 解密数据 但没有成功 我有使用多年的 C Rijndael 逻辑 以及 base64 decode 逻辑 后者完美地解码了 ph
  • 如何复制具有 MySQL 中保留的键和其他结构特征的表?

    如何复制保留键和其他结构特征的表 包括主键 外键和索引 这可以通过单个 MySQL 查询来完成吗 我正在使用 create table newtable as select 但此方法会使所有键和索引丢失 无法使用单个查询来从另一个表复制一个
  • Razorpay 支付集成 -> 我如何检测关闭按钮 X 附近的 razorpay 模型

    我在 CI 框架中使用 Razorpay 当用户在没有付款的情况下关闭时 创建 razor 支付模型 然后对于取消订单 我希望通过状态更改为已取消来触发查询 那么我怎样才能检测到这一点 我已经在使用 by click jQuery 点击关闭
  • 如何清除服务器上的 Laravel 路由缓存

    这是关于本地主机上的路由缓存 关于本地主机 我的route php 文件中有2 条路线 两者都工作正常 没问题 我在学习route clear和route cache时发现了一个小问题如下 如果我在我的route php文件中评论任何一条路
  • 访问php数组内部[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个像这样的数组打印 array 2 systems gt array 5 1 gt string 1 1111 2
  • 在 Laravel Schema 中创建价格列

    我想在 Laravel 模式中创建一个价格列 public function up Schema create cameras function Blueprint table table gt increments id table gt
  • PHP 中的舍入

    a 0 1 0 7 10 int 0 1 0 7 10 PHP 返回 false 有人能给我解释一下 为什么会发生这种情况吗 第一个返回 8 第二个返回 7 引用PHP 浮点精度手册中的大红色警告 http de3 php net manu
  • PHP 插入中的 mysqli_affected_rows

    我有这个代码 if mail to subject message headers insert member sql INSERT INTO members id username VALUES id username insert me

随机推荐

  • 动态爬虫(ajax)-爬取bilibili热门视频信息

    文章目录 前言 一 页面分析 二 编写爬虫 1 引入库 2 发出请求 2 1生成请求头 2 2发出请求并获取响应 3 解析响应的内容 4 保存提取的信息到本地 5 康康主函数 三 运行结果 前言 使用python爬虫爬取bilibli每日热
  • VS2019利用Developer Command Prompt for VS 2019查看对象模型中的Class

    本文利用Developer Command Prompt for VS 2019工具 快速查看对象模型中类的结构 便于大家迅速了解衍生类和基类的关系 文章目录 一 打开开发人员命令提示工具 二 使用步骤 1 确定cpp文件位置 1 1 查找
  • chatGPT侧边栏历史记录消失解决方法

    从昨天3月8日开始 很多程序员发现自己的chatGPT打开后左侧侧边栏历史记录消失了 自己辛辛苦苦测试的Prompt都没有了 折腾了很久都不行 不得不重新写Prompt 解决方法 其实很简单 就是退出账号登录 然后重新登录账号再刷新就恢复了
  • QT界面UI文件不读取问题

    QT的C 项目有一段时间没有打开 重新打开时发现部分ui界面不知道为什么无法在QT Creator中用designer编辑器打开了 问题如下图 1 双击该ui界面不会自动跳转到界面编辑器了 2 可以随意更改ui界面的代码内容了 正常的ui界
  • C/C++使用Windows的API实现共享内存以及同步

    目录 共享内存 事件 Event 实现思路 创建方 服务端 连接方 进程同步 windows的API CreateFileMapping MapViewOfFile CreateEvent WaitForSingleObject Creat
  • 复习js笔记

    JS w3cschool官网 1000多本编程教程免费学 在日常中遇到的js函数 forms document forms name for in 循环 let x name lai age 18 city nanyang var y fo
  • 深度学习:激活函数的比较和优缺点,sigmoid,tanh,relu

    1 什么是激活函数 2 为什么要用 3 都有什么激活函数 4 sigmoid Relu softmax 1 什么是激活函数 如下图 在神经元中 输入的 inputs 通过加权 求和后 还被作用了一个函数 这个函数就是激活函数 Activat
  • Vue

    一 vue router的实现原理 路由的概念来源于服务端 服务端中的路由描述的是URL和处理函数之间的映射关系 web前端单页应用SPA single page application 中 路由描述的是URL和UI之前的映射关系 这种映射
  • 华为机试题24-合唱队

    描述 N 位同学站成一排 音乐老师要请最少的同学出列 使得剩下的 K 位同学排成合唱队形 设K位同学从左到右依次编号为 1 2 K 他们的身高分别为T1 T2 TK 若存在i 1 i K 使得T1
  • 万字解读区块链游戏行业:洞察游戏的未来

    撰文 Mason Nystrom Jerry Sun Messari 分析师 编辑 南风 基于区块链的游戏领域正在快速扩张 这得益于 NFT 和游戏内货币的崛起 该领域的增长可以被视为数十年来游戏行业盈利策略和商业模式不断迭代的延续 在过去
  • VB--生成DLL的步骤

    1 找到工程栏下 当前工程 选中它 2 右键工程 属性 3 生成页签 改下版本号 以便区分 4 选择横的菜单栏 文件 生成 dll 文件 OVER
  • 驱动开发 linux内核GPIO子系统、及其新版API的概念和使用,linux内核定时器

    1 GPIO子系统 概述 每一个芯片厂商生产出芯片后会给linux提供一个当前芯片中gpio外设的驱动 我们只需要调用对应的厂商驱动就可以完成硬件的控制 而linux内核源码中的gpio厂商驱动有很多 linux内核个会对厂商驱动做一些封装
  • 【HIve】java.lang.NoSuchFieldError: HIVE_STATS_JDBC_TIMEOUT

    1 概述 xception in thread main java lang NoSuchFieldError HIVE STATS JDBC TIMEOUT at org apache spark sql hive HiveUtils h
  • 如何拥有个人的Github技术博客

    题图 87testing com 前不久用wordpress搭建了一个博客 用起来感觉不是太好用 并且数据库经常会发生异常挂掉 没找到解决方案 看到有不少人使用的hexo github方式搭建属于自己的博客 于是 我也做了一些尝试 将搭建的
  • 什么是Sui Kiosk,它可以做什么,如何赋能创作者?

    创作者和IP持有者需要一些工具帮助他们在区块链上实现其商业模式 Sui Kiosk作为Sui上的一种原语可以满足这种需求 为创作者提供动态选项 使他们能够在任何交易场景中设置完成交易的条件 本文将向您介绍为什么要在SuiFrens中使用Su
  • libusb linux 异步传输,libusb开发(关于异步IO)

    libusb开发 关于异步IO 上一篇介绍了libusb的同步传输接口 但是很多情况下使用同步传输远远达不到我们的要求 那么这个时候就应该使用异步传输 接下来的内容是我学习libusb时遇到的问题以及异步IO如何使用 异步写 void QU
  • 区块链智能合约solidity入门

    使用ubuntu系统安装ethereum开发环境 安装 Nodejs sudo apt get update sudo apt install curl curl sL https deb nodesource com setup 8 x
  • 紫禁之巅-Unity游戏开发教程:勇者斗恶龙之魔法石

    说明 开设了一个unity游戏开发课程 可以帮助对游戏开发有兴趣的小伙伴学习Unity游戏开发的知识和技术 课程地址 第一节课的课件是游戏工程 第二节的课件是大纲 和文章内相同 其它章节的课件和第一节课的相同 不需要重复下载 课程大纲 课程
  • MySQL8小时连接超时断开问题

    报错 Caused by com mysql jdbc exceptions jdbc4 CommunicationsException The last packet successfully received from the serv
  • PHP 微信小程序 WebSocket MySQL Redis实现聊天功能

    1 Mysql 实现离线消息池 如果一个用户不在线 则其他用户发送给他的消息暂时存储在mysql 待该用户上线时 再从离线消息池取出发送 2 Redis 实现每个连接websocket的服务都唯一绑定一个用户 通过用户账号 fd 存到red