php redis 实时聊天,php+redis聊天室
首先看我们的目录结构:
chat.html
sub.php
pub.php
redis.php
chat.html是访问的web页面,进行聊天室的操作
redis.php调用redis服务
sub是订阅功能
pub是发布功能
下面看代码
chat.html:
发送
$("button").click(function(){
var text = $("textarea").val();
$.post("pub.php",{"content":text});
});
function getdata(){
$.post("sub.php",function(data){
if(data){
$("div").append(data+"
");
$("textarea").val("");
getdata();
}
});
}
getdata();
redis.php:
header("content-type:text/html;charset=utf-8");
ini_set('default_socket_timeout',-1);
$redis = new Redis();
$redis -> pconnect('localhost',6379);
pub.php:
include './redis.php';
$redis -> publish('tv1',$_POST['content']);
sub.php:
include './redis.php';
$redis -> subscribe(array('tv1'),'callback');
function callback($redis,$channel,$contect){
echo $channel;
echo ":";
echo $contect;
echo "
";
exit();
}
解释下代码:
1.html中点击发送的事件,在pub.php中会将数据发布到redis中。
2.html中默认走的sub,是sub获取redis频道中的值,处于监听状态,频道中的值不发生改变,则一直处于监听状态,当值发生了改变,sub得到返回值,返回给页面,html中js将数据打到页面上,然后重新进行一波sub,继续监听。
原理:
似乎也没啥好讲的,主要是redis的发布/订阅功能,会有一个阻塞的作用,形成一个long poll可以达到类似websocket的效果,不过性能是受配合的语言(php)影响的。
php redis 实时聊天,php+redis聊天室相关推荐
- php 利用redis写一个聊天室,Redis实现多人多聊天室功能
本文为大家分享了Redis支持多人多聊天室功能的设计代码,供大家参考,具体内容如下 设计原理 左边的一个数据域,代表两个聊天室,聊天室id分别是827,729 在聊天室827里,有2个人,分别是jas ...
- Java websocket + redis 实现多人单聊天室,多人多聊天室, 一对一聊天
多人,单聊天室版 FEATURE 多人聊天, 界面简洁美观, 使用ueditor支持发送文字,图片信息 群聊成员列表, 登入登出公告 存储聊天记录, 查看历史消息 技术点 使用CopyOnWriteM ...
- 实时刷新的在线聊天室
1.大厅聊天 2.私人聊天 3.加好友 4.发表情 图片 目前已经实现了这些功能 这是一个博客 1.数据展示 2.浏览 和点赞 3.日历 4.个人相册 5.邮箱找回密码 6.滑块验证 7.登入注册 8 ...
- Redis Monitor命令 - 实时打印出Redis服务器接收到的命令,调试用
Redis Monitor 命令用于实时打印出Redis服务器接收到的命令,调试用. 语法 redis Monitor命令基本语法如下: redis 127.0.0.1:6379> MONITO ...
- 【转】编写微信聊天机器人4《聊天精灵WeChatGenius》:实时获取到微信聊天消息,hook数据库插入操作。...
接上篇,使用Xposed来hook微信,找到微信进程:https://blog.csdn.net/weixin_42127613/article/details/81839537 既然已经找到了微信进 ...
- 编写微信聊天机器人4《聊天精灵WeChatGenius》:实时获取到微信聊天消息,hook数据库插入操作。
接上篇,使用Xposed来hook微信,找到微信进程:https://blog.csdn.net/weixin_42127613/article/details/81839537 既然已经找到了微信进 ...
- Redis基本使用|基本命令|redis事务|Jedis|持久化|订阅|集群|
文章目录 Redis ! 一.概述 二.安装 三.实操 1.性能测试 2.基础知识 3.基本key命令 4.基本数据类型 1.String 2.List 3.Set 4.Hash 5.Zset 5.特 ...
- redis泡菜5_《redis讲解》PPT课件.pptx
redis讲解 王江财 目 录 1 2 3 4 5 6 redis简介 redis数据类型 主从复制 持久化 redis集群 jedis及集群应用 7 发布与订阅功能 $$1redis简介 一.什么是 ...
- Redis基础—九、Redis订阅发布、Redis集群
Redis基础-九.Redis订阅发布.Redis集群 一.Redis订阅发布 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息 ...
- 什么?你还不会Redis?超级详细最新Redis教程
文章目录 NoSQL的特点 NoSQL的四大分类 Redis入门 概述 Linux安装 测试性能 基础知识 五大数据类型 Redis-Key String(字符串) List(列表) Set(集合) ...
最新文章
- minhash算法检索相似文本_文本去重算法:Minhash/Simhash/Klongsent
- IOS引导页拨动4张图片最后一张停三秒进入主页,页面推送
- MapReduce数据连接
- 初识Django —Python API接口编程入门
- 【CodeForces - 340B 】Maximal Area Quadrilateral (计算几何,枚举,有坑)
- 一个vue请求接口渲染页面的例子
- 2012浙大878计算机专业基础综合大题答案解析
- 你看过最好的心理学书籍是什么?
- MenuItem 对象
- 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
- 页面刷新_刷新vue页面,解决数据丢失
- Python分词及词性划分
- 无线局域网中RADIUS协议原理与实现
- WinCE系统USB功能定制
- android netcfg 源码分析
- 关于Intel芯片架构的发展史
- android音乐播放器横评,14款Android音乐播放器年度横评 安卓播放器对比测评
- finecms基础操作
- flutter AppBar背景渐变色
- Qt读取/写入Excel数据--QAxObject