Я пытался понять разницу в модели Websocket и Comet. По моему пониманию,Открытая разность подключений в кометах и веб-узлах
В модели кометы соединение остается открытым до тех пор, пока сервер не сможет что-то нажать на клиента. Когда сервер перетаскивает данные клиенту, соединение закрывается и для следующего запроса устанавливается новое соединение. Это не считается хорошим подходом, поскольку соединение может оставаться открытым долгое время (вызывая интенсивное использование ресурсов сервера) или может быть тайм-аут.
С другой стороны, веб-интерфейсы начинаются с установления связи, и как только клиент и сервер соглашаются обмениваться данными, соединение остается открытым.
Таким образом, в обоих случаях соединение остается открытым в течение длительного времени (особенно в сети). Так что это не недостаток websocket, чтобы поддерживать соединение открытым. Я хотел бы воспользоваться ссылкой SignalR в asp.net, чтобы обсудить эту концепцию.
Что я понял по этой ссылке: http://stackoverflow.com/questions/9107384/server-scalability-html-5-websockets-vs-comet, это то, что когда у вас есть сообщения в очереди для отправки клиенту , от сервера, в этом случае комета будет опросить, придется ждать, пока вы не отправите запрос на него (поскольку он не является полнодуплексным - верьте мне, если я ошибаюсь). Но, будучи полнодуплексным, websocket будет продолжать отправлять сообщения в очередь, даже если он выполняет текущий запрос ur. Пожалуйста, поправьте меня, если я ошибаюсь. –
При длительном опросе Если базовое соединение TCP остается открытым, оно закрывается, когда следующий запрос отправляется для длительного опроса ??? –
Полнодуплексный режим не означает конвейерную обработку. Полнодуплексный способ позволяет отправлять сообщения двунаправленно (от сервера к клиенту и от клиента к серверу) одновременно в одном и том же сокете. Конвейеризация означает возможность передавать сообщения, не дожидаясь получения какого-либо запроса на уровне приложения или нового запроса от клиента, чтобы получить следующее сообщение. WebSocket является полнодуплексным с конвейерной обработкой. Потоковая передача HTTP не является полнодуплексной, но имеет конвейерную обработку. HTTP Long Polling не является полнодуплексным и не имеет конвейерной обработки. В Long Polling основной TCP-сокет обычно остается открытым по запросам. –