Как реализовать надежный транспорт UDP в WCF? - PullRequest
1 голос
/ 20 марта 2019

Я ищу советы и указания о том, как реализовать надежный транспорт UDP в WCF.

Мне нужно создать приложение, в котором и клиент, и сервер должны предоставлять услуги друг другу, а WCF, кажется,мне нравится очень хороший вариант.Я новичок в WCF и пока знаю только самые основы.Из того, что я прочитал, дуплексный TCP-канал WCF создает TCP-соединение от клиента к серверу, а другое - от сервера к клиенту для обратных вызовов, и это проблема для меня, потому что клиенты обычно находятся за брандмауэром / маршрутизатором.Я рассматриваю использование транспорта UDP, чтобы избежать этой проблемы, поскольку UDP не использует соединение, но мне нужно было бы реализовать надежный транспорт UDP, ориентированный на соединение, чтобы выполнить то, что мне нужно.

Я изучил пользовательских примеров транспорта UDP на MSDN , но я до сих пор точно не знаю, что нужно для реализации пользовательского транспорта, который будет поддерживать в основном те же функции, что и обычный транспорт TCP, предполагая, что я уже знаю, как реализоватьНадежность UDP.


Как возможные альтернативы для выполнения того, что мне нужно, с помощью встроенного транспорта TCP, я читал о длинных опросах, но это кажется нелогичным и добавляет ненужную сложность.на все это.Однако я открыт для предложений об альтернативах подходу UDP.

1 Ответ

1 голос
/ 20 марта 2019

Ваша идея великолепна, хотя протокол UDP изначально ненадежен. Таким образом, дуплексный канал WCF основан на протоколе TCP. как упомянуто в статье,

Для транспорта UDP единственной поддерживаемой MEP является датаграмма, потому что UDP по своей сути является протоколом «запусти и забудь».

Насколько мне известно, если мы хотим обеспечить надежность связи UDP, протокол прикладного уровня должен завершить механизм подтверждения и повторной передачи по таймауту. Это означает, что мы должны рассмотреть возможность реализации надежного транспорта UDP на уровне приложений (по крайней мере, пока официально не реализовано).
https://www.codeproject.com/Articles/331599/What-s-new-in-WCF-4-5-UDP-transport-support
https://docs.microsoft.com/en-us/dotnet/framework/wcf/extending/service-channel-listeners-and-channels

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...