Nano Hash - криптовалюты, майнинг, программирование

Вызовы асинхронного веб-сервера в Silverlight и максимальное количество HTTP-соединений

Я читал, что Silverlight 2.0 предполагает асинхронную модель при взаимодействии с веб-сервером. У меня не было возможности поэкспериментировать с Silverlight, но я предполагаю, что он использует пул потоков для управления потоками, как в .NET Framework.

Теперь, поскольку некоторые браузеры, в первую очередь Internet Explorer , имеют жестко заданное ограничение - не более двух одновременных HTTP-соединений, которые могут быть выполнены на веб-сервере, что произойдет, если я сделаю кучу асинхронных запросов от Silverlight?

Обходит ли Silverlight это ограничение в веб-браузер и открыть столько HTTP-соединений, сколько доступно потоков, или же асинхронные запросы встают в очередь и ждут, пока станет доступным одно из двух соединений?


Ответы:


1

В IE (не тестировал другие) Silverlight ограничен двумя подключениями одновременно.

Поведение в Silverlight - просто не делать запрос. Итак, если вы сделаете 5 запросов асинхронной веб-службы подряд, первые 2 будут выполнены, а остальные три - нет. Я не видел никаких исключений ...

Fiddler здесь большой помощник :)

28.10.2008
  • какая версия IE и silverlight? 19.08.2009
  • Это определенно неверно в Silverlight 4, он ставит их в очередь (но по-прежнему ограничен двумя за раз). 03.05.2010
  • Такое же поведение при выборе ClientHttp и BrowserHttp? 30.09.2011

  • 2

    Создайте интерфейс менеджера обмена сообщениями для своего клиента. Любой исходящий запрос помещается в очередь, которую обрабатывает этот менеджер. Он будет последовательно обрабатывать сообщения в очереди (то есть, когда вызывается обратный вызов последнего сообщения, отправленного на сервер, он может безопасно перейти к обработке следующего сообщения в очереди).

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

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

    Мы делаем что-то в этом роде с нашими клиентскими приложениями Flex в сочетании с Adobe BlazeDS, работающим на нашем веб-сервере Tomcat:

    Асинхронный стек на основе Flex

    24.12.2008

    3

    Firefox также ограничен двумя подключениями в дополнение к IE, как уже было сказано.

    Обратите внимание, что ограничение указано на имя хоста.

    Если вы добавите записи в свой файл hosts или используете псевдонимы DNS, вы можете получить больше соединений. Например, при тестировании добавьте такие строки, как '127.0.0.1 test1' в свой файл hosts, а затем вы сможете открыть два подключения к http://localhost и еще два на http://test1

    16.12.2008

    4

    Я предполагаю, что будучи приложением .NET Silverlight 2 имеет независимый от браузера лимит.
    Я предполагаю, что это атрибут maxconnection в Machine.config, как упоминалось в http://support.microsoft.com/kb/828219

    23.10.2008

    5

    Во-первых, файл Machine.config не будет использоваться, поскольку элемент управления Silverlight изолирован от собственной версии CoreCLR.

    Я считаю, что элемент управления Silverlight фактически использует базовый браузер для выполнения асинхронных HTTP-запросов. Скорее всего, это так, учитывая, что элемент управления Silverlight не может получить доступ к информации об ошибках SOAP, поскольку спецификация SOAP требует, чтобы сервер возвращал код ответа HTTP 500, а элемент управления Silverlight не получает его от браузера, в котором размещен элемент управления.

    Это сообщение здесь служит подтверждением этого.

    Что касается ограничения одновременных HTTP-подключений, я считаю, что IE5 и более поздние версии ограничивают количество подключений к одному и тому же сайту на основе версии протокола HTTP - HTTP / 1.0 ограничивает до 4 подключений, а HTTP / 1.1 до 3 подключений. В большинстве случаев веб-сервер ограничивает количество подключений до 2 на клиента, ставя в очередь или отбрасывая оставшиеся.

    23.10.2008
  • Закрывать. Старые браузеры ограничивают 4 HTTP / 1.0 и 2 HTTP / 1.1. 19.01.2010
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..