у нас есть клиент, которому нужно получать интерактивные сообщения от сервера, от клиентов, которые распространяются по всему миру за всеми видами межсетевых экранов с закрытыми всеми видами портов. Единственное, на что мы можем положиться - это HTTP-порт 80 (и HTTPS 443).
Дизайн в основном смоделирован по XMPP (протокол Jabber) с использованием нашего клиента и IIS. Клиент отправляет запросы GET обработчику .NET; обработчик держит запрос открытым некоторое время для поиска сообщений. Если поступают какие-либо сообщения, они немедленно отправляются клиенту; если нет, то по истечении времени ожидания соединение закрывается с ответом «нет данных». Клиент немедленно возобновляет связь.
Ну, теоретически.
Сначала происходит то, что на самом деле происходит, IIS не может обрабатывать более 100 одновременных запросов - все остальные помещаются в очередь, и между «подключенным» и IIS может возникнуть задержка в несколько минут, когда клиент узнает, что клиент звонил. Во-вторых, о половина времени ожидания клиента без ответа от сервера (время ожидания клиента на пять минут больше, чем на сервере).
POST всегда работает. Другие данные, обслуживаемые на том же веб-сервере, работают. Веб-сервисы на одном сервере работают. Это стандартная установка на Windows 2K3 Server.
Есть ли параметр конфигурации, который нам не хватает, или есть что-то еще, на что я должен обратить внимание, чтобы решить эту проблему?
Спасибо.