Может ли CallbackEventHandler отправить несколько ответов клиенту? - PullRequest
1 голос
/ 30 сентября 2010

Я реализовал ICallbackEventHandler для обработки данных, отправляемых из JavaScript браузера. (Пользователь что-то щелкает, вызывая отправку eventArgument на сервер. Сервер вызывает службу для получения этого значения.) Пока все отлично работает, но на самом деле мне нужно вызвать три разных сервиса с одним и тем же eventArgument. В зависимости от того, когда / если ответит каждая служба, ее результаты необходимо отправить в браузер, чтобы увеличить отображение. Я думаю о создании потока для каждого запроса на обслуживание. Когда / если он ответит, я отправлю эти результаты и в браузер.

Что было бы хорошим способом сделать это?

//ICallbackEventHandler implementation 
public void RaiseCallbackEvent(String eventArgument)
{
   returnValue = GetDataFromService1(eventArgument);
}

public String GetCallbackResult()
{
   return returnValue;
}

1 Ответ

0 голосов
/ 30 сентября 2010

Самый простой способ реализовать это - внедрить javascript в браузере, который запрашивает результаты для каждого сервиса, учитывая, что каждый из них может вернуться в разное время.

Другим вариантом может быть Reactive Extensions для .NET (Rx). Rx предлагает «push» уведомления в браузер с использованием наблюдаемых коллекций, реализованных в .NET и «излучаемых» в javascript.

...