本文实例讲述了PHP实现的消息实时推送功能。分享给大家供大家参考,具体如下:

入口文件index.html

<!DOCTYPE HTML>
<html>
<head><title>反ajax推送</title><style>.send{color:#555;text-align: left;}.require{color:blue;text-align: right;}.content_box{text-align: center;margin: 20px;border: 1px solid #ddd;padding: 20px;}</style><script src="http://code.jQuery.com/jquery-1.11.2.min.js"></script>
</head>
<body><div class="content_box" id="content_box_title" style="border: none;">消息框</div><div class="content_box" id="content_box"></div><div style="width: 450px;margin: 0 auto;"><select id="username" style="font-size: 20px;"><option value="1" selected="selected">1</option><option value="2">2</option></select><input type="text" style="font-size: 20px;" value="" id="send_text"><button id="btn_send" style="font-size: 20px;">发送</button><button id="btn_link" style="font-size: 20px">连接</button></div><div class="error_tip" id="error_tip" style="color: red;"></div><script>$(function(){//发送消息$('#btn_send').click(function(){var send_text = $('#send_text').val();if(send_text.length <= 0){$('#error_tip').html('不能输入空值');}else{send(send_text);}});//按回车键发送消息$('#send_text').on('keyup',function(e){if(e.keyCode == 13){$('#btn_send').trigger('click');}});//建立通讯链接$('#btn_link').click(function(){connect();var _this = $(this);_this.attr('disabled',true);_this.html('已连接');});});//建立通讯连接函数function connect(){$('#content_box_title').html($('#username').val()+'的消息窗口');$.ajax({data:{'user':$('#username').val()},url:'ajaxPush.PHP',type:'get',timeout:0,dataType:'json',success:function(data){$('#content_box').append('<div class="require">'+data.msg+'</div>');connect();}});}//发送消息函数function send(massege){var user =$('#username').val();$.getJSON('write.php',{'msg':massege,'user':user},function(data){if(data.sf){$('#content_box').append('<div class="send">'+massege+'</div>');$('#send_text').val('');}else{$('#error_tip').html('输入保存错误!');}});}</script>
</body>
</html>

ajax处理输入 write.php

<?php
/*** Created by TXM.* Time: 2017/4/18 13:13* function:*/
$filename = dirname(__FILE__).'/data.txt';
$isread_file = dirname(__FILE__).'/isread.txt';
$user = dirname(__FILE__).'/user.txt';
//写入消息,消息未读,谁发送的消息
file_put_contents($filename,$_GET['msg']);
file_put_contents($isread_file,'0');
file_put_contents($user,$_GET['user']);
echo json_encode(array('sf'=>true));

长轮询推送 ajaxPush.php

<?php
/*** Created by TXM.* Time: 2017/4/18 13:12* function:*/
$filename = dirname(__FILE__).'/data.txt';
$isread_file = dirname(__FILE__).'/isread.txt';
$userfile = dirname(__FILE__).'/user.txt';
$get_user = $_GET['user'] == '1'?'2':'1';
$msg='';
while(1){$msg = file_get_contents($filename);$isread = file_get_contents($isread_file);$user = file_get_contents($userfile);//是对方发送的消息,设置消息已读,退出循环。if($isread == '0' && $get_user == $user){file_put_contents($isread_file,'1');break;}sleep(1);
}
echo json_encode(array('msg'=>$msg));

以上内容希望帮助到大家,更多PHP大厂PDF面试文档,PHP进阶架构视频资料,PHP精彩好文可以关注公众号:PHP开源社区,或者访问:

精华PHP技术文章整理合集——PHP框架篇

精华PHP技术文合集——微服务架构篇

精华PHP技术文合集——分布式架构篇

精华PHP技术文合集——高并发场景篇

精华PHP技术文章整理合集——数据库篇

java消息推送怎么实现_PHP实现的消息实时推送功能相关推荐

  1. php主动推送弹幕_php实现通知的实时推送

    其实这个内容,我在就搞过,只是没记录过.正好最近,项目中遇到了,记录一下,方便有同样需求的小伙伴,也参考下.先说一下我的需求,我们一个呼叫系统,电话接通之后,呼叫体系统会推送一个通知到我指定的url上 ...

  2. 基于RabbitMQ 的 Web MQTT插件进行前端消息实时推送

    目录 RabbitMQ What is AMQP, MQTT, STOMP ? How to use RabbitMQ with MQTT ? 1. Docker 安装RabbitMQ 2. MQTT ...

  3. 友盟消息推送服务器demo,umeng友盟消息推送功能集成

    umeng友盟消息推送功能集成(本人使用的是eclipse开发) 1.首先请自行观看友盟消息推送集成的API文档. 观看地址如下: 2.集成步骤如下 下载sdk 注意:有两种sdk如果用户已经集成支付 ...

  4. 消息推送服务器推pc,PC浏览器消息实时推送的解决方案 ——EPush推送平台

    原标题:PC浏览器消息实时推送的解决方案 --EPush推送平台 陈华 研发工程师,2014入职去哪儿网.参与研发的EPush推送平台,增强了订单推送的时效性,提高了酒店自助订单处理率.最近负责CEQ ...

  5. uniapp使用unipush推送及java后台推送代码(含本地打包apk使用unipush推送)

    你懂的,又是项目用到了,作为程序猿义无反顾需要定时 "进化" ,硬头皮去写,虽然曾经作为android开发者写了很多的推送,但是uniapp的推送也是有所差异的,记录一下,以后留用 ...

  6. 未读消息(小红点),前端 与 RabbitMQ 实时消息推送实践,贼简单~

    前几天粉丝群里有个小伙伴问过:web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢. 之前在 <springboot ...

  7. Java Spring Boot 2.0 实战之制作Docker镜像并推送到Docker Hub和阿里云仓库

    内容摘要:大规模集群快速部署Java应用,需要制作Docker镜像,本次课程详细介绍如何制作Java程序的Docker镜像文件,深入解析DockerFile核心参数,以及实践演练把我们制作的Docke ...

  8. 【极光推送】给指定用户发送消息

    前言 如果你还没有搭建极光推送服务器,建议你根据情况,先从服务器搭建开始. 前文标题: <[极光推送]jpush服务端开发详尽过程> 链接: http://ningmengjiabing. ...

  9. java调用百度推送详解_Java 以 Post 方式实现百度 Sitemap 实时推送

    Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页.最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间.更改的 ...

最新文章

  1. 核爆rpg手机版_好嗨游戏:不玩吃亏 ,20款全世界最佳移动RPG角色扮演游戏(上)...
  2. 小白都能看懂的神经网络教程:从原理到优化如此简单
  3. 学习Exchange管理最佳实践
  4. LeetCode 758. 字符串中的加粗单词(Trie树)
  5. sql azure 语法_Azure SQL Server自动故障转移组
  6. 局域网限速软件_8款Windows实用软件推荐,纯干货,总有一款是你必备的
  7. Bp算法公式推导推导-详解
  8. 音量控制 单片机c 语言,单片机可调音量一线控制语音芯片程序
  9. 清除Chrome浏览器的历史记录、缓存
  10. # 稳了github star突破9k即时通讯IM开源项目OpenIM版本发布-生产环境重点关注
  11. 阿里云朱照远:AI打开新视界 8K时代已来! 1
  12. c还是java(雨思版)
  13. TotalControl之手机录屏神器
  14. STM32 CubeMx教程 -- 基础知识及配置使用教程
  15. oracle管理用户安全策略,oracle数据库安全性管理策略方法
  16. HOJ P2143 Song(贪心)
  17. jpg图片转ico图片格式
  18. 20230119英语学习
  19. 前向欧拉法、后向欧拉法简介
  20. 1、Chrome之Elements功能面板

热门文章

  1. python获取post请求中的所有参数_Django从POST reques获取请求参数
  2. springMVC ---- 异步调用
  3. php接收get数组数据,php-如何从wordpress数据库中获取数组值get_results
  4. 计算机nit证书怎么学,计算机等级考试证书和NIT可以抵免自考中哪些课程?
  5. Java经纬度坐标与高斯坐标的转换
  6. 生成随机位数的UUID
  7. 将JSON对象中的某个字段进行分组和排序(java实现)
  8. Android开发笔记(一百四十七)标签布局TabLayout
  9. Java数据类型分类
  10. 《精通javascript》几个简单的函数(二)