Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自服务器端C的长轮询#_C#_Long Polling - Fatal编程技术网

C# 来自服务器端C的长轮询#

C# 来自服务器端C的长轮询#,c#,long-polling,C#,Long Polling,我更像是一个php程序员,不是c#,但请容忍我 我有一个与API连接的应用程序,该API不时发送推送消息。它使用长轮询作为机制。我已经研究过如何使用signar,但是所有的示例都显示了服务器推送消息。我希望服务器通过长轮询接收消息。有人知道怎么做吗?有。只需启动对远程端点的请求并等待响应。处理完响应后,请重新开始。就这么简单 public async Task LongPoll(Uri remoteEndPoint) { for(;;) { string data

我更像是一个php程序员,不是c#,但请容忍我


我有一个与API连接的应用程序,该API不时发送推送消息。它使用长轮询作为机制。我已经研究过如何使用signar,但是所有的示例都显示了服务器推送消息。我希望服务器通过长轮询接收消息。有人知道怎么做吗?

有。只需启动对远程端点的请求并等待响应。处理完响应后,请重新开始。就这么简单

public async Task LongPoll(Uri remoteEndPoint)
{
    for(;;)
    {
        string data;
        using(var wc=new WebClient())
        {
            data = await wc.DownloadStringTaskAsync(remoteEndPoint);
        }
        Process(data);  
    }
}

我在这里忽略了取消,但如果您想要优雅地终止应用程序,您需要考虑轮询是如何结束的。

您还必须小心您的托管环境,如果有一段时间没有收到请求,IIS可能会关闭您的程序。