This article illustrates the real-time message push function implemented in PHP. Share with you for your reference, as follows:
! [](https://pic3.zhimg.com/80/v2-e1546c33fd97ef3f05b374e91ba45e72_720w.jpg)
Entry file index.html
<! < HTML> <head> <title> </title> <style>. 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"> 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;" < p style=" max-width: 100%; clear: both; min-height: 1em; </button> </div> <div class="error_tip" id="error_tip" style="color: red; > < / div > < script > $(function () {/ / $(' # btn_send). Send a message click (function () {var send_text = $(' # send_text). Val (); If (send_text. Length < = 0) {$(' # error_tip). The HTML (' can't enter a null value); }else{ send(send_text); }}); / / press enter to send message $(' # send_text) on (' keyup ', function (e) {if (e.k eyCode = = 13) {$(' # btn_send). The trigger (" click "); }}); / / build a communication link $(' # btn_link). Click (function () {the connect (); var _this = $(this); _this.attr('disabled',true); _this.html(' connected '); }); }); / / build a communication link function function the connect () {$(' # content_box_title). The HTML ($(' # username). Val () + 'in the message window). $.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 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(' Input save error! '); }}); } </script> </body> </html>Copy the code
Ajax handles the input 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));Copy the code
Long polling pushes 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); // Set the message to read and exit the loop. if($isread == '0' && $get_user == $user){ file_put_contents($isread_file,'1'); break; } sleep(1); } echo json_encode(array('msg'=>$msg));Copy the code
I hope the above content can help you. Many PHPer will encounter some problems and bottlenecks when they are advanced, and they have no sense of direction when writing too many business codes. I have sorted out some information, including but not limited to: Distributed architecture, high scalability, high performance, high concurrency, server performance tuning, TP6, Laravel, YII2, Redis, Swoft, Kafka, Mysql optimization, shell scripting, Docker, microservices, Nginx, etc. Many knowledge points can be free to share with you