【发布时间】:2014-08-13 16:32:24
【问题描述】:
我更像是一个 php 程序员,不是 c#,但请耐心等待。
我有一个与不时发送推送消息的 API 连接的应用程序。它使用长轮询作为机制。我已经研究过为此使用 signalR,但所有示例都显示服务器推送消息。我希望服务器通过长轮询接收消息。有人知道怎么做吗?
【问题讨论】:
标签: c# long-polling
我更像是一个 php 程序员,不是 c#,但请耐心等待。
我有一个与不时发送推送消息的 API 连接的应用程序。它使用长轮询作为机制。我已经研究过为此使用 signalR,但所有示例都显示服务器推送消息。我希望服务器通过长轮询接收消息。有人知道怎么做吗?
【问题讨论】:
标签: c# long-polling
是的。只需启动对远程端点的请求并等待响应。处理完响应后,重新开始。就这么简单。
public async Task LongPoll(Uri remoteEndPoint)
{
for(;;)
{
string data;
using(var wc=new WebClient())
{
data = await wc.DownloadStringTaskAsync(remoteEndPoint);
}
Process(data);
}
}
我在这里忽略了取消,但是如果您想优雅地终止您的应用程序,您需要考虑轮询如何结束。
【讨论】: