ajax轮询获取php后台消息推送
在web开发中有时会用到消息提醒,一般都是使用浏览器前端轮询消息接口来获得最新消息提醒,或者使用socket的方式获取消息(这种方式带给服务器的压力小)。本文只介绍使用ajax轮询获取消息的方式。
前端页面index.html
<!DOCTYPE HTML> <html> <head> <title>ajax获取消息</title> <meta charset="UTF-8"> <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> <div class="content_box" id="content_box"> <script type="text/javascript"> connect(); //建立通讯连接函数 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(); } }); } //Ajax定时访问服务端,这里是10000ms请求一次。 window.setInterval(function(){ // $.ajax(getting) connect(); },10000);//180000毫秒 </script>
简易版后台消息接口ajaxPush.php
<?php echo json_encode(array('msg'=>time().' ==服务器返回'));
直接访问index.html即可,只要网页不关闭会一直请求消息,建议轮询间隔至少保证1分钟。如果想要实时性好还是使用socket或其他第三方消息通知接口。在现实中ajaxPush.php显然是完全不可使用的,还需要增加数据存储与相关的逻辑处理,公告类型消息与单用户消息的处理一般也有所不同(尤其用户量很大且需要标记已读未读的情况)。
推荐阅读:长连接/websocket/SSE等主流服务器推送技术比较
基于互联网精神,在注明出处的前提下本站文章可自由转载!
本文链接:https://ranjuan.cn/ajax-push-message-with-php/
赞赏
微信赞赏支付宝赞赏
发表评论