各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

php怎样实现新订单提示功能

管理员 2023-09-05
PHP
147

php怎样实现新订单提示功能

内容导读

收集整理的这篇技术教程文章主要介绍了php怎样实现新订单提示功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3502字,纯文字阅读大概需要6分钟

内容图文

我们在做商城系统的过程当中,会要求做一个订单提醒的功能,即来新的订单会提醒。我实现的方法是有订单后就会提醒“您有新的订单,请注意查收!”

解决方案

ajax轮询(推荐学习:PHP编程从入门到精通)

轮询的方法比较简单,就是每过多少秒发起一次请求。如果项目中的订单不多,每隔多少秒发一次请求会对服务器有挺大的压力。

<script>    setInterval("order()",59000000);//每59秒刷新查询一次    var last_count = {$count};    function order() {         var data = {            'last_count':last_count        };         $.ajax({            type: "POST",            data: data,            url: "{:url('Order/sendOrderNotice')}",//后台方法            timeout: 60000,            cache: false,            async: false,            dataType: "json",            success: function(data) {                if(data.status == 1){                    var audio = document.getElementById( "play" ); //浏览器支持 audio                    audio.play(); //播放提示音                    last_count = data.last_count;                    setTimeout(function(){                        window.location.reload();                        }, 3000);                }            }        });     } </script>

上面就是这个解决方案的核心。后端的代码请根据自己的业务逻辑编写。

Workerman

Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。

Workerman不是重复造轮子,它不是一个MVC框架,而是一个更底层更通用的socket服务框架,你可以用它开发tcp代理、梯子代理、做游戏服务器、邮件服务器、ftp服务器、甚至开发一个php版本的redis、php版本的数据库、php版本的nginx、php版本的php-fpm等等。Workerman可以说是PHP领域的一次创新,让开发者彻底摆脱了PHP只能做WEB的束缚。

实际上Workerman类似一个PHP版本的nginx,核心也是多进程+Epoll+非阻塞IO。Workerman每个进程能维持上万并发连接。

由于本身常住内存,不依赖Apache、nginx、php-fpm这些容器,拥有超高的性能。同时支持TCP、UDP、UNIXSOCKET,支持长连接,支持Websocket、HTTP、WSS、HTTPS等通讯协以及各种自定义协议。

拥有定时器、异步socket客户端、异步Mysql、异步Redis、异步Http、异步消息队列等众多高性能组件。

订单监控页面端的代码:

<script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script><script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js"></script><script>    // 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip    var socket = io('http://www.tp5_test.com:2120'); //http://www.tp5_test.com换成自己的域名或者ip    // uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数,这个ID可以随便写    uid = 1557062581000;    // socket连接后以uid登录    socket.on('connect', function(){        socket.emit('login', uid);    });    <!--// 后端推送来消息时-->    socket.on('new_msg', function(msg){         //两种处理方式         // 1 追加到页面元素中,可以做成页面的弹窗        $("#msg").append(msg);           //2 播放提示应 :        if(msg == 1){            var audio = document.getElementById( "play" ); //浏览器支持 audio            audio.play(); //播放提示音        }      });    // 后端推送来在线数据时    socket.on('update_online_count', function(online_stat){        console.log(online_stat);    });</script>

后端代码:

//这个方法我随便写了写,具体的处理就是在支付完成回调以后,用用send_workerman方法就可以了。我是用sends来模型支付完成以后的回调public function sends($id){    // var_dump($id);die;    if($id == 1){      $this->send_workman($id);    }else{      echo '没有发送消息';    }}/** * @route('send_workman') */public function send_workman($id){    $to_uid = '1557062581000'; //和页面的uid一致,不填写也可以    // 推送的url地址,使用自己的服务器地址    $push_api_url = "http://www.tp5_test.com:2121/";    $post_data = array(        "type" => "publish",        "content" => $id,        "to" => $to_uid,    );    $ch = curl_init ();    curl_setopt ( $ch, CURLOPT_URL, $push_api_url );    curl_setopt ( $ch, CURLOPT_POST, 1 );    curl_setopt ( $ch, CURLOPT_HEADER, 0 );    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );    curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );    curl_setopt ( $ch, CURLOPT_HTTPHEADER, array("Expect:"));    $return = curl_exec ( $ch );    curl_close ( $ch );    var_export($return);}

以上就是php怎样实现新订单提示功能的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php怎样实现新订单提示功能全部内容,希望文章能够帮你解决php怎样实现新订单提示功能所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

扫码关注

qrcode

QQ交谈

回顶部