C# PHP 客户端长轮询
本文关键字:客户端 PHP | 更新日期: 2023-09-27 18:36:33
我已经找到了将近两天的时间,找不到任何关于 c# 客户端长轮询的教程。谁能给我一个例子或帮助我解决这个问题。所以,这是我的php文件。
乙.php
<?
set_time_limit(0);
$file = 'test.txt';
$js_time = !empty($_GET['time']) ? intval($_GET['time']) : 0;
$file_time = filemtime($file);
while($file_time <= $js_time){
usleep(10000);
clearstatcache();
$file_time = filemtime($file);
}
$info = file_get_contents($file);
echo $info;
?>
第二.php
function test(){
var aj;
try{aj=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){
try{aj=new ActiveXObject("Microsoft.XMLHTTP");}
catch(E){aj=false;}
}
var time = Math.round(new Date().getTime() / 1000);
if(!aj&&typeof XMLHttpRequest!=undefined)aj=new XMLHttpRequest();
aj.open("GET","b.php?time="+time,true);
aj.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=utf-8');
aj.onreadystatechange=function(){
if(aj.readyState==4&&aj.status==200){
document.getElementById("test").innerHTML = aj.responseText;
test();
//alert('aa');
}
}
aj.send(null);
}
test();
</script>
C#
string URL = "http://localhost/gcm_server_php/b.php?time=" + DateTime.Now.ToString() ;
WebClient webClient = new WebClient();
string responseBytes = webClient.DownloadString(URL);
string responsefromserver = responseBytes;
a.Content=responsefromserver;
webClient.Dispose();
使用此 c# 代码只能获得一次。任何人都可以帮助我使用 c# 进行长轮询 b.php?感谢您的帮助,对不起我的英语不好。:(
这里有一个很好的教程:
http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-getting-started-with-signalr-20