Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WCF, Web Services, Remoting Новый топик    Ответить
 Контроль успешности доставки сообщений  [new]
vb_sub
Member

Откуда:
Сообщений: 542
Всем привет, у меня есть сервис в котором реализован метод, вызывающий Callback несколько других приложений.
         foreach (NotifyUser u in SubscribersList)
                u.operationContext.GetCallbackChannel<IinfoTabloCallback>().infoTabloCallback(p);


Вопрос в следующем-как можно получить информацию о том, что все CallBack'и успешно получены?
Первый очевидный вариант- чтобы CallBack возвращал код успешного получения. Однако это не работает в том случае, когда коллбэк получен клиентом успешно, а вот возврат клиентом кода успешного получения сообщения по каким-либо причинам до сервиса не дошел. И получится, что сервис думает, что сообщение не доставлено, хотя на клиенте оно успешно получено. Есть ли какие-либо средства для решения этой проблемы ? Спасибо
5 фев 18, 13:55    [21166772]     Ответить | Цитировать Сообщить модератору
 Re: Контроль успешности доставки сообщений  [new]
Нахлобуч
Member

Откуда: https://hglabhq.com
Сообщений: 3939
Проблема двух генералов. Решения не имеет.
8 фев 18, 16:00    [21176978]     Ответить | Цитировать Сообщить модератору
 Re: Контроль успешности доставки сообщений  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 2985
vb_sub
Всем привет, у меня есть сервис в котором реализован метод, вызывающий Callback несколько других приложений.
         foreach (NotifyUser u in SubscribersList)
                u.operationContext.GetCallbackChannel<IinfoTabloCallback>().infoTabloCallback(p);


Вопрос в следующем-как можно получить информацию о том, что все CallBack'и успешно получены?
Первый очевидный вариант- чтобы CallBack возвращал код успешного получения. Однако это не работает в том случае, когда коллбэк получен клиентом успешно, а вот возврат клиентом кода успешного получения сообщения по каким-либо причинам до сервиса не дошел. И получится, что сервис думает, что сообщение не доставлено, хотя на клиенте оно успешно получено. Есть ли какие-либо средства для решения этой проблемы ? Спасибо


гарантированных решений нет...

пусть сервер долбит одним и тем же вызовом, пока клиент не пришлет подтверждение, хотя это не хорошо
17 фев 18, 09:33    [21198527]     Ответить | Цитировать Сообщить модератору
 Re: Контроль успешности доставки сообщений  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
vb_sub
Однако это не работает в том случае, когда коллбэк получен клиентом успешно, а вот возврат клиентом кода успешного получения сообщения по каким-либо причинам до сервиса не дошел.
что то странное.
Почему HTTP односторонняя связь, однако код возврата HTTP.OK = 200 мы получаем?
17 фев 18, 13:24    [21198717]     Ответить | Цитировать Сообщить модератору
 Re: Контроль успешности доставки сообщений  [new]
vb_sub
Member

Откуда:
Сообщений: 542
Petro123,
чтобы работала дуплексная связь с Http нужно использовать wcDualHttpBinding- это двухсторонняя связь. Конкретно в моем случае-nettcpbinding.
19 фев 18, 11:24    [21201231]     Ответить | Цитировать Сообщить модератору
 Re: Контроль успешности доставки сообщений  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
vb_sub
Petro123,
чтобы работала дуплексная связь с Http нужно использовать wcDualHttpBinding- это двухсторонняя связь. Конкретно в моем случае-nettcpbinding.

Нет. Этот флаг из wcf ms для эмуляции вызова клиента из сервера.
Я говорил об обычном стандарте http - запрос и получил ответ.Т.е. запрос Get и получил либо код ошибки, либо сам ответ.
Т.е. почему у вас не работает этот механизм с кодом успешного получения с той стороны?
Как понять слова ниже?
vb_sub
Первый очевидный вариант- чтобы CallBack возвращал код успешного получения. Однако это не работает в том случае, когда коллбэк получен клиентом успешно, а вот возврат клиентом кода успешного получения сообщения по каким-либо причинам до сервиса не дошел.

IMHO
19 фев 18, 12:24    [21201446]     Ответить | Цитировать Сообщить модератору
 Re: Контроль успешности доставки сообщений  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Ролг Хупин
пусть сервер долбит одним и тем же вызовом, пока клиент не пришлет подтверждение, хотя это не хорошо

Если правильно понял, то это для асинхронных ответов, либо когда клиент не может вызвать сервер сам.
19 фев 18, 12:28    [21201467]     Ответить | Цитировать Сообщить модератору
 Re: Контроль успешности доставки сообщений  [new]
vb_sub
Member

Откуда:
Сообщений: 542
Petro123,
метод callback сделать не void, а например boolean, где возврат true означает успешность обработки клиентом сообщения.
19 фев 18, 13:55    [21201839]     Ответить | Цитировать Сообщить модератору
 Re: Контроль успешности доставки сообщений  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
vb_sub
Petro123,
метод callback сделать не void, а например boolean, где возврат true означает успешность обработки клиентом сообщения.

Угу. Синхронный режим. Ответ сразу же.
Либо, если протокол позволяет отправляется ему адрес обратной связи чтобы потом ответил (асинхронно).
19 фев 18, 14:42    [21202044]     Ответить | Цитировать Сообщить модератору
 Re: Контроль успешности доставки сообщений  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 2985
vb_sub
Petro123,
чтобы работала дуплексная связь с Http нужно использовать wcDualHttpBinding- это двухсторонняя связь. Конкретно в моем случае-nettcpbinding.


это не всегда доступно
19 фев 18, 16:12    [21202452]     Ответить | Цитировать Сообщить модератору
Все форумы / WCF, Web Services, Remoting Ответить