首先看我们的目录结构:

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聊天室相关推荐

  1. php 利用redis写一个聊天室,Redis实现多人多聊天室功能

    本文为大家分享了Redis支持多人多聊天室功能的设计代码,供大家参考,具体内容如下 设计原理 左边的一个数据域,代表两个聊天室,聊天室id分别是827,729 在聊天室827里,有2个人,分别是jas ...

  2. Java websocket + redis 实现多人单聊天室,多人多聊天室, 一对一聊天

    多人,单聊天室版 FEATURE 多人聊天, 界面简洁美观, 使用ueditor支持发送文字,图片信息 群聊成员列表, 登入登出公告 存储聊天记录, 查看历史消息 技术点 使用CopyOnWriteM ...

  3. 实时刷新的在线聊天室

    1.大厅聊天 2.私人聊天 3.加好友 4.发表情 图片 目前已经实现了这些功能 这是一个博客 1.数据展示 2.浏览 和点赞 3.日历 4.个人相册 5.邮箱找回密码 6.滑块验证 7.登入注册 8 ...

  4. Redis Monitor命令 - 实时打印出Redis服务器接收到的命令,调试用

    Redis Monitor 命令用于实时打印出Redis服务器接收到的命令,调试用. 语法 redis Monitor命令基本语法如下: redis 127.0.0.1:6379> MONITO ...

  5. 【转】编写微信聊天机器人4《聊天精灵WeChatGenius》:实时获取到微信聊天消息,hook数据库插入操作。...

    接上篇,使用Xposed来hook微信,找到微信进程:https://blog.csdn.net/weixin_42127613/article/details/81839537 既然已经找到了微信进 ...

  6. 编写微信聊天机器人4《聊天精灵WeChatGenius》:实时获取到微信聊天消息,hook数据库插入操作。

    接上篇,使用Xposed来hook微信,找到微信进程:https://blog.csdn.net/weixin_42127613/article/details/81839537 既然已经找到了微信进 ...

  7. Redis基本使用|基本命令|redis事务|Jedis|持久化|订阅|集群|

    文章目录 Redis ! 一.概述 二.安装 三.实操 1.性能测试 2.基础知识 3.基本key命令 4.基本数据类型 1.String 2.List 3.Set 4.Hash 5.Zset 5.特 ...

  8. redis泡菜5_《redis讲解》PPT课件.pptx

    redis讲解 王江财 目 录 1 2 3 4 5 6 redis简介 redis数据类型 主从复制 持久化 redis集群 jedis及集群应用 7 发布与订阅功能 $$1redis简介 一.什么是 ...

  9. Redis基础—九、Redis订阅发布、Redis集群

    Redis基础-九.Redis订阅发布.Redis集群 一.Redis订阅发布 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息 ...

  10. 什么?你还不会Redis?超级详细最新Redis教程

    文章目录 NoSQL的特点 NoSQL的四大分类 Redis入门 概述 Linux安装 测试性能 基础知识 五大数据类型 Redis-Key String(字符串) List(列表) Set(集合) ...

最新文章

  1. minhash算法检索相似文本_文本去重算法:Minhash/Simhash/Klongsent
  2. IOS引导页拨动4张图片最后一张停三秒进入主页,页面推送
  3. MapReduce数据连接
  4. 初识Django —Python API接口编程入门
  5. 【CodeForces - 340B 】Maximal Area Quadrilateral (计算几何,枚举,有坑)
  6. 一个vue请求接口渲染页面的例子
  7. 2012浙大878计算机专业基础综合大题答案解析
  8. 你看过最好的心理学书籍是什么?
  9. MenuItem 对象
  10. 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
  11. 页面刷新_刷新vue页面,解决数据丢失
  12. Python分词及词性划分
  13. 无线局域网中RADIUS协议原理与实现
  14. WinCE系统USB功能定制
  15. android netcfg 源码分析
  16. 关于Intel芯片架构的发展史
  17. android音乐播放器横评,14款Android音乐播放器年度横评 安卓播放器对比测评
  18. finecms基础操作
  19. flutter AppBar背景渐变色
  20. Qt读取/写入Excel数据--QAxObject

热门文章

  1. 尚硅谷java——个人收支记录软件
  2. QTTabBar 安装记录(Win10 enable .NET)
  3. 上传,修改头像的使用
  4. 2017高教杯数学建模B 题分析
  5. 心理测评全系统设计与代码实现
  6. 2D虚拟试衣——服装变形
  7. 使用云函数快速升级网易云音乐等级
  8. 基于51单片机与wifi模块(esp8266-12f)实现对LED灯的控制
  9. 启动pe系统找不到计算机硬盘分区,pe系统看不到硬盘分区_pe系统里看不到硬盘...
  10. Diamond软件的使用--(1)软件安装及配置