Лучшие практики для .Net WCF NAT Traversal - PullRequest
7 голосов
/ 19 марта 2011

Я ищу предложения или решение для однорангового обхода NAT в .Net.Скажем, у меня есть приложение чата, и два клиента должны подключиться, но оба находятся за NAT:

Для домашних сценариев uPNP, вероятно, в порядке, так как задействован только кабельный модем или потребительский маршрутизатор.Но как насчет корпоративных сред, где uPNP невозможен?

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

Я также изучал IPv6 и Teredo, но я не уверен, что каждый клиент будет иметь доступность IPv6, и это немного сбивает с толку всех требований Teredo (серверы, реле и т. Д.)

Сейчас 2011 год, и клиенты IM / Chat существуют уже десять лет, а потом и некоторые, поэтому я должен поверить, что эта проблема решалась много раз.Кто-нибудь может порекомендовать лучшие практики в этой области?Заранее спасибо!

1 Ответ

0 голосов
/ 20 июня 2012

XMPP поддерживает чат с прохождением NAT, и есть несколько клиентов с открытым исходным кодом для .NET.Используйте любой XMPP-сервер, например OpenFire.

...