0

私はほぼ 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 を長くポーリングするのを手伝ってくれる人はいますか?助けてくれてありがとう、私の貧弱な英語でごめんなさい。:(

4

1 に答える 1

0

ここに良いチュートリアルがあります:

http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-getting-started-with-signalr-20

于 2013-10-23T07:23:57.613 に答える