HttpTunneling приложения TCPClient - PullRequest
0 голосов
/ 07 июня 2010

У нас есть специальное приложение чата (c #), которое использует TCPClient. У нас проблемы с клиентами, которые находятся за брандмауэром или прокси. Мы знаем, что эти клиенты могут без проблем просматривать Интернет, поэтому мы решили изменить наше приложение TCPClient, чтобы оно использовало HTTP-сообщения для связи.

Достаточно ли будет просто обернуть наши текстовые сообщения стандартными тегами HTML и заголовками HTTP? Нам нужна длительная связь. Есть ли у keep-alive ограничения? У брандмауэров или прокси есть ограничения по времени для «живых» соединений.

1 Ответ

2 голосов
/ 07 июня 2010

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

Если ваш протокол не может работать без сохранения состояния, он не будет работать через HTTP через прокси.

...