扣丁學(xué)堂PHP培訓(xùn)之解析用php寫(xiě)簡(jiǎn)單消息推送(源碼)
2018-02-05 13:53:09
1510瀏覽
入口代碼index.html
<!DOCTYPEHTML>
<html>
<head>
<title>反ajax推送</title>
<style>
.send{color:#555;text-align:left;}
.require{color:blue;text-align:right;}
.content_box{text-align:center;margin:20px;
border:1pxsolid#ddd;padding:20px;}
</style>
<scriptsrc="http://m.dionly.net.cn/jquery-1.11.2.min.js"></script>
</head>
<body>
<divclass="content_box"id="content_box_title"style="border:none;">消息框</div>
<divclass="content_box"id="content_box">
</div>
<divstyle="width:450px;margin:0auto;">
<selectid="username"style="font-size:20px;">
<optionvalue="1"selected="selected">1</option>
<optionvalue="2">2</option>
</select>
<inputtype="text"style="font-size:20px;"value=""id="send_text">
<buttonid="btn_send"style="font-size:20px;">發(fā)送</button>
<buttonid="btn_link"style="font-size:20px">連接</button>
</div>
<divclass="error_tip"id="error_tip"style="color:red;">
</div>
<script>
$(function(){
//發(fā)送消息
$('#btn_send').click(function(){
varsend_text=$('#send_text').val();
if(send_text.length<=0){
$('#error_tip').html('不能輸入空值');
}else{
send(send_text);
}
});
//按回車鍵發(fā)送消息
$('#send_text').on('keyup',function(e){
if(e.keyCode==13){
$('#btn_send').trigger('click');
}
});
//建立通訊鏈接
$('#btn_link').click(function(){
connect();
var_this=$(this);
_this.attr('disabled',true);
_this.html('已連接');
});
});
//建立通訊連接函數(shù)
functionconnect(){
$('#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('<divclass="require">'+data.msg+'</div>');
connect();
}
});
}
//發(fā)送消息函數(shù)
functionsend(massege){
varuser=$('#username').val();
$.getJSON('write.php',{'msg':massege,'user':user},function(data){
if(data.sf){
$('#content_box').append('<divclass="send">'+massege+'</div>');
$('#send_text').val('');
}else{
$('#error_tip').html('輸入保存錯(cuò)誤!');
}
});
}
</script>
</body>
</html>
ajax處理輸入write.php
<?php
/**
*CreatedbyTXM.
*function:
*/
$filename=dirname(__FILE__).'/data.txt';
$isread_file=dirname(__FILE__).'/isread.txt';
$user=dirname(__FILE__).'/user.txt';
//寫(xiě)入消息,消息未讀,誰(shuí)發(fā)送的消息
file_put_contents($filename,$_GET['msg']);
file_put_contents($isread_file,'0');
file_put_contents($user,$_GET['user']);
echojson_encode(array('sf'=>true));
長(zhǎng)輪詢推送ajaxPush.php
<?php
/**
*CreatedbyTXM.
*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);
//是對(duì)方發(fā)送的消息,設(shè)置消息已讀,退出循環(huán)。
if($isread=='0'&&$get_user==$user){
file_put_contents($isread_file,'1');
break;
}
sleep(1);
}
echojson_encode(array('msg'=>$msg));
以上就是入口代碼index.html
<!DOCTYPEHTML>
<html>
<head>
<title>反ajax推送</title>
<style>
.send{color:#555;text-align:left;}
.require{color:blue;text-align:right;}
.content_box{text-align:center;margin:20px;
border:1pxsolid#ddd;padding:20px;}
</style>
<scriptsrc="http://m.dionly.net.cn/jquery-1.11.2.min.js"></script>
</head>
<body>
<divclass="content_box"id="content_box_title"style="border:none;">消息框</div>
<divclass="content_box"id="content_box">
</div>
<divstyle="width:450px;margin:0auto;">
<selectid="username"style="font-size:20px;">
<optionvalue="1"selected="selected">1</option>
<optionvalue="2">2</option>
</select>
<inputtype="text"style="font-size:20px;"value=""id="send_text">
<buttonid="btn_send"style="font-size:20px;">發(fā)送</button>
<buttonid="btn_link"style="font-size:20px">連接</button>
</div>
<divclass="error_tip"id="error_tip"style="color:red;">
</div>
<script>
$(function(){
//發(fā)送消息
$('#btn_send').click(function(){
varsend_text=$('#send_text').val();
if(send_text.length<=0){
$('#error_tip').html('不能輸入空值');
}else{
send(send_text);
}
});
//按回車鍵發(fā)送消息
$('#send_text').on('keyup',function(e){
if(e.keyCode==13){
$('#btn_send').trigger('click');
}
});
//建立通訊鏈接
$('#btn_link').click(function(){
connect();
var_this=$(this);
_this.attr('disabled',true);
_this.html('已連接');
});
});
//建立通訊連接函數(shù)
functionconnect(){
$('#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('<divclass="require">'+data.msg+'</div>');
connect();
}
});
}
//發(fā)送消息函數(shù)
functionsend(massege){
varuser=$('#username').val();
$.getJSON('write.php',{'msg':massege,'user':user},function(data){
if(data.sf){
$('#content_box').append('<divclass="send">'+massege+'</div>');
$('#send_text').val('');
}else{
$('#error_tip').html('輸入保存錯(cuò)誤!');
}
});
}
</script>
</body>
</html>
ajax處理輸入write.php
<?php
/**
*CreatedbyTXM.
*function:
*/
$filename=dirname(__FILE__).'/data.txt';
$isread_file=dirname(__FILE__).'/isread.txt';
$user=dirname(__FILE__).'/user.txt';
//寫(xiě)入消息,消息未讀,誰(shuí)發(fā)送的消息
file_put_contents($filename,$_GET['msg']);
file_put_contents($isread_file,'0');
file_put_contents($user,$_GET['user']);
echojson_encode(array('sf'=>true));
長(zhǎng)輪詢推送ajaxPush.php
<?php
/**
*CreatedbyTXM.
*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);
//是對(duì)方發(fā)送的消息,設(shè)置消息已讀,退出循環(huán)。
if($isread=='0'&&$get_user==$user){
file_put_contents($isread_file,'1');
break;
}
sleep(1);
}
echojson_encode(array('msg'=>$msg));
以上就是關(guān)于扣丁學(xué)堂解析用php寫(xiě)簡(jiǎn)單消息推送(源碼)的詳細(xì)介紹,最后想要了解更多關(guān)于PHP開(kāi)發(fā)發(fā)展前景趨勢(shì),請(qǐng)關(guān)注扣丁學(xué)堂官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平臺(tái)為您提供權(quán)威的PHP培訓(xùn)視頻教程系統(tǒng),通過(guò)千鋒扣丁學(xué)堂金牌講師在線錄制的一套PHP視頻教程課程,讓你快速掌握PHP從入門(mén)到精通開(kāi)發(fā)實(shí)戰(zhàn)技能。扣丁學(xué)堂PHP開(kāi)發(fā)工程師技術(shù)交流群:374332265。
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】
查看更多關(guān)于“php培訓(xùn)資訊”的相關(guān)文章>>
標(biāo)簽:
PHP培訓(xùn)
PHP視頻教程
PHP從入門(mén)到精通
PHP學(xué)習(xí)路線圖
PHP開(kāi)發(fā)工程師