Yes. Just send a request to the remote endpoint and wait for a response. When you have processed the answer, start over. It is so simple.
public async Task LongPoll(Uri remoteEndPoint)
{
for(;;)
{
string data;
using(var wc=new WebClient())
{
data = await wc.DownloadStringTaskAsync(remoteEndPoint);
}
Process(data);
}
}
, , , - .