In the process of building the mall system, we will require an order reminder function, that is, a reminder will be given when a new order comes. The way I implement it is that after placing an order, it will prompt "You have a new order, please check it carefully!"
Solution
ajax polling(Recommended learning:PHP programming from entry to proficiency)
The polling method is relatively simple, that is, every time How many seconds to initiate a request. If there are not many orders in the project, sending a request every few seconds will put a lot of pressure on the server.
The above is the core of this solution. Please write the back-end code according to your own business logic.
Workerman
Workerman is an open source high-performance PHP socket service framework developed purely in PHP.
Workerman is not reinventing the wheel. It is not an MVC framework, but a lower-level and more general socket service framework. You can use it to develop tcp agents, ladder agents, game servers, mail servers, and ftp servers. , and even develop a PHP version of redis, PHP version of database, PHP version of nginx, PHP version of php-fpm, etc. Workerman can be said to be an innovation in the field of PHP, allowing developers to completely get rid of the constraints that PHP can only do WEB.
In fact, Workerman is similar to a PHP version of nginx, and the core is also multi-process Epoll non-blocking IO. Each Workerman process can maintain tens of thousands of concurrent connections.
Because it resides in memory, it does not rely on containers such as Apache, nginx, and php-fpm, and has ultra-high performance. It also supports TCP, UDP, UNIXSOCKET, long connections, Websocket, HTTP, WSS, HTTPS and other communication protocols as well as various custom protocols.
It has many high-performance components such as timers, asynchronous socket clients, asynchronous Mysql, asynchronous Redis, asynchronous Http, and asynchronous message queues.
Order monitoring page code:
Backend code:
//这个方法我随便写了写,具体的处理就是在支付完成回调以后,用用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); }
The above is the detailed content of How to implement new order prompt function in php. For more information, please follow other related articles on the PHP Chinese website!