私はほぼ 2 日を見つけましたが、C# クライアントのロング ポーリングに関するチュートリアルが見つかりません。誰かが私に例を挙げたり、この問題を解決するのを手伝ってくれますか? だから、これは私のphpファイルです。
b.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;
?>
Second.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 を長くポーリングするのを手伝ってくれる人はいますか?助けてくれてありがとう、私の貧弱な英語でごめんなさい。:(