Будут ли сообщения между службами WCF передаваться по сети Wi-Fi/WLAN?

StackOverflow https://stackoverflow.com/questions/1692716

  •  18-09-2019
  •  | 
  •  

Вопрос

В моем офисном здании на нескольких этажах стоят ноутбуки, на которых работает служба WCF.Когда службы WCF взаимодействуют друг с другом, будет ли сообщение для устройства, находящегося вне зоны действия, автоматически достигать его посредством множественного переключения?Справляется ли с этим WCF/драйвер устройства WLAN?Или мне нужно определить, является ли устройство недоступным или находится вне зоны действия, и реализовать переключение в моей собственной службе?

Это было полезно?

Решение

Да, пока у вас есть соединение вашего клиента WCF со службой, все возможности будут использоваться.Вам не нужно беспокоиться о том, по какому сетевому пути проходят ваши сообщения — сеть просто должна присутствовать и стабильно работать на протяжении всего разговора ;-)

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

Другие советы

Короткий ответ

С помощью WCF можно выполнить одно или оба из этих действий:

  • Положитесь на базовый протокол, такой как IP, для управления роумингом.
  • Используйте код специального канала, который обрабатывает повторные попытки, роуминг и т. д. так, как вы этого хотите.

В классах WCF, предоставляемых Microsoft, не предусмотрено никакого специального механизма для улучшения роуминга, но сама платформа легко способна поддерживать это, если вы напишете или найдете реализацию канала для этого.

Полный ответ

WCF не является беспроводным протоколом.Это платформа, которая позволяет вам общаться, используя широкий спектр протоколов и сетевых стеков.Это позволяет вам использовать один и тот же клиентский и серверный код независимо от того, используете ли вы HTTPS, необработанный TCP, именованные каналы или любой другой протокол.

WCF поставляется со множеством каналов, и вы можете добавить свои собственные.Например, если вы хотите общаться через BlueTooth или IRDA, просто создайте новый канал, который использует эти протоколы, и вы сможете использовать через него свои службы WCF.Эти каналы также можно найти в Интернете или приобрести у поставщиков.

Большая часть сетей сегодня осуществляется с использованием протокола IP, и если вы используете WCF для связи между настольными компьютерами, вы, вероятно, будете использовать какой-либо протокол поверх IP, например TCP или HTTP.В этом случае будут использоваться обычные правила маршрутизации IP, поэтому, если две машины могут обмениваться IP-пакетами, вы можете общаться с помощью WCF.

Поэтому, если ваши точки доступа Wi-Fi поддерживают бесшовный роуминг, вы сможете воспользоваться этой функцией с помощью WCF.

Если ваша маршрутизация Wi-Fi не поддерживает бесшовный роуминг, вам придется проделать дополнительную работу, если вы хотите поддерживать соединение во время роуминга.В частности, вам нужно будет создать канал, который будет отвечать на закрытое соединение, повторно разрешая сервер и повторяя запрос.Конечно, вам придется использовать DNS или другой протокол, чтобы сервер мог обновлять свою регистрацию при изменении IP-адреса.

WCF достаточно гибок, чтобы позволить вам создать такой канал и использовать его, даже не осознавая этого кодом вашего приложения.Но в коробке ничего подобного нет:Вам придется его создать, скачать или купить.

к WCF это не имеет никакого отношения....

если между компьютерами есть соединение по IP, то сообщение дойдёт...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top