2013-10-23 103 views
0

我發現將近兩天,找不到關於c#客戶端長輪詢的任何教程。任何人都可以給我一個例子或幫助我解決這個問題。所以,這是我的PHP文件。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嗎?感謝幫助,併爲我可憐的英語感到抱歉。 :(

+0

這裏是C#在這個 – Patel

+1

如果您使用的是C#,有你看着signalr – Fisch

+0

編輯我的問題,已經貼上我的C#代碼請再次檢查!非常感謝! – user2739955

回答