#.net #http #httplistener
#.net #http #httplistener
Вопрос:
У меня есть два приложения, обменивающиеся данными с использованием протокола HTTP. Одно приложение использует HTTPListener
для получения данных от другого. Это работает довольно хорошо. Из-за того, что обычно связь осуществляется только между двумя приложениями, я хотел бы поддерживать соединение в рабочем состоянии как можно дольше. KeepAlive
Свойству HttpListenerRequest присвоено значение true (это значение по умолчанию), но соединение, похоже, закрывается, как только я отправляю ответ.
Я не могу найти никаких настроек для HttpListener, таких как тайм-ауты и т.д. Возможно ли это вообще с этим классом или есть какие-либо более подходящие альтернативы?
Ответ №1:
Timeout
это дело клиента — тот, кто запрашивает, ожидает тайм-аута.
KeepAlive
это необязательный заголовок, который запрашивает сервер поддерживать активное соединение, в то время как сервер не обязан этого делать. Это поддержание в рабочем состоянии охватывает несколько запросов, которые, я полагаю, не то, что вам нужно.
Требуемое поведение может быть достигнуто с помощью chunked encoding
.
послушайте этот подкаст, вы получите ответы на все вопросы.