0

0

服务器推送数据到客户端(可做直播)

php中文网

php中文网

发布时间:2016-06-07 11:42:51

|

1168人浏览过

|

来源于php中文网

原创

服务器推送数据到客户端,可实现直播或者一些其他特殊需求。。。(类似每次苹果大会还有爱范儿直播那种东西。如果拿ajax 去定时查询的太累了,实现原理comet 技术)甚至可以执行js css 等代码~
服务器推送数据到客户端(可做直播)
后台前端部分代码~    function send(msg){
        $.ajax({
            data : {'msg' : msg},
            type : 'post',
            url : '{:U('Live/SendMsg')}',
            success : function(response){
               //alert(response);;
            }
        })
    }
    $(document).ready(function(){
        connect();
        $("#btn").click(function(){
            var msg = $('#msg').val();
            send(msg);
            msg.html('');
          });
    })
    public function SendMsg(){
        
        $filename  = './Uploads/live/'.'data.json';
        if ($_POST['msg']!='') {
            file_put_contents($filename,$_POST['msg']);
            $this->ajaxReturn($_POST,'OK',100);
            die();
        }else{
            $this->ajaxReturn($_POST,'on',0);
            die();
        }
        
    }
前台展示部分: 


1.请输入推送信息,可同时执行多条信息和JavaScript指令,每行一条
 var timestamp = 0;
    var url = '/live.php';
    var error = false;
    function connect(){
        $.ajax({
            data : {
                'timestamp' : timestamp
            },
            url : url,
            type : 'get',
            timeout : 0,
            success : function(response){
                var data = eval('('+response+')');
                error = false;
                timestamp = data.timestamp;
                if (data.msg!='') 
                {
                    $("#infobox").append(data.msg + '
');
                };
                
            },
            error : function(){
                error = true;
                setTimeout(function(){ connect();}, 5000);
            },
            complete : function(){
                if (error)
                    // if a connection problem occurs, try to reconnect each 5 seconds
                    setTimeout(function(){connect();}, 5000);
                else
                    connect();
            }
        })
    }
   $(document).ready(function(){
      connect();
    })
推送模块代码:     $filename  = './Uploads/live/'.'data.json';
//    $msg = isset($_GET['msg']) ? $_GET['msg'] : '';
    // 不停的循环,直到储存消息的文件被修改
    $lastmodif    = isset($_GET['timestamp']) ? $_GET['timestamp'] : 0;
    $currentmodif = filemtime($filename);
    while ($currentmodif          usleep(100000); // 100ms暂停 缓解CPU压力
        clearstatcache(); //清除缓存信息
        $currentmodif = filemtime($filename);
    }
    // 返回json数组
    $response = array();
    $response['msg']       = file_get_contents($filename);
    $response['timestamp'] = $currentmodif;
    echo json_encode($response);
    //$this->ajaxReturn($response,'ok',1);
    flush();
?>
服务器推送数据到客户端(可做直播)

现在有个bug 好像是属于tp 内核的吧?在前端页面执行过推送,在去点tp 框架里面其他功能会变得很卡,大概卡顿30秒左右不知道是什么原因还在找,目前采用的是文件读写判断修改时间 然后去推送。也就是说你那个文件只要修改就会去推送到本地客户端,里面可以执行js html css 等你想要的效果。
期待大神优化~

AD:真正免费,域名+虚机+企业邮箱=0元

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.2万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号