Самый простой для двусторонней связи через Интернет с использованием C # - PullRequest
3 голосов
/ 23 августа 2009

Что я использую для двусторонней связи через Интернет без необходимости открывать порты на стороне клиента?

Пользователи не согласятся открывать порты и выполнять переадресацию портов на стороне клиента, хотя все возможно на стороне сервера.

Но мне нужно установить двухстороннюю связь ..

Как мне добиться этого?

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

Конечно, это будет через Интернет.

Пожалуйста, помогите .. Спасибо

Изменить: Обратите внимание, что мне нужно подключить несколько клиентов и поддерживать сеанс для каждого клиента.

Ответы [ 3 ]

3 голосов
/ 23 августа 2009

WCF поддерживает дуплексные привязки HTTP.

Пока инициирующий клиент может получить доступ к услуге, для вызова клиента может быть определен контракт обратного вызова. Он просто сохраняет HTTP-соединение, как только клиент его инициировал.

2 голосов
/ 23 августа 2009

Это зависит от того, что вы хотите сделать. Дуплексный WCF может работать, но через NAT и Proxies он становится несколько «сомнительным», потому что это зависит от клиента, открывающего конечную точку WCF и поддерживающего соединение.

Я написал руководство для начинающих по обратным вызовам WCF некоторое время назад - это достаточно просто сделать, но вам нужно будет много тестировать его из различных настроек клиента.

1 голос
/ 23 августа 2009

Подключение через TCP (необработанные сокеты или более поздняя реализация) к вашему центральному серверу.
На вашем сервере должно быть приложение, которое прослушивает определенный, хорошо известный TCP-порт.
Каждый клиент подключается к вашему серверу, используя определенный порт и «входит».
Напишите протокол приложения выше TCP (аутентификация, управление сеансами и т. Д.), И вот, у вас, , поскольку соединение TCP, после установления которого работает, работает в обоих направлениях .

...