механизм действия. Что программно значит «держать коннект»? Ну, я понимаю, что сервер как минимум должен в памяти держать ip адрес клиента, плюс какой-нибудь номер запроса или как там(мало знаю сетевые технологии, да ещё и плохо помню что знал).
Наверно, слушающему нужно следить (постоянно опрашивать) у себя за каким-нибудь «файлом» в памяти (сокетом? Юникс-сокет это и есть файл в памяти?). Если это верно, то это даёт какое-то понимание, в чём дополнительная нагрузка когда «держишь коннект» (хоть и не ясно, насколько это сильная нагрузка)
Может и не так, и скорей всего ещё что-то происходит
Ну по сути если все упростить, то при создании коннекта, содается инстанс класса, который кладется в оперативную память, вешаются на него слушатели и собственно чем больше коннектов, тем больше в памяти таких инстансов с навешаными слушателями 🙂 И большинство из них просто молчать может, а память жрут)) А обычный реквест это создали пул таких инстансов, соединились, обработали, даже не вешаясь слушателями, отдали ответ и поклали в пул объектов обратно
Обсуждают сегодня