private static Task WaitIncomingMessageAsync(string id)
{
TaskCompletionSource<object> tcs;
lock (LongPollWaiters)
{
if (!LongPollWaiters.TryGetValue(id, out tcs))
{
LongPollWaiters[id] = tcs = new TaskCompletionSource<object>();
}
}
return tcs.Task;
}