2013-03-21 3 views
0

혜성 구현과 관련하여 질문이 있습니다. Servlet 3.0 비동기 기능을 통해 지금 달성 할 수있는 것과 비슷한 비동기 요청을 처리하는 데 사용된다는 것을 알고 있습니다. 그러나 내가 이해하지 못하는 것은 호출 클라이언트에게 푸시가 어떻게 수행되는지에 있습니다.혜성은 클라이언트 측과 어떻게 작동합니까?

웹 소켓에서 우리는 ip와 port를 제공하여 연결을 엽니 다. 혜성을 사용하면 서버가 데이터를 푸시 할 때 콜백을 받기 위해 서버에 어떻게 연결합니까?

답변

1

Comet (programming)에있는 위키 피 디아 페이지는이 질문에 대한 훌륭한 자료입니다. (미안하지만 너무 분명합니다.)

Comet은 HTTP를 사용하여 클라이언트와 서버 간의 양방향 연결을 시뮬레이트하는 포괄적 인 용어입니다. 궁극적으로 서버에 HTTP 요청을하고 열어두기를 시도합니다 (긴 폴링 및 스트리밍). 긴 폴링에서는 주어진 간격 후에 또는 데이터가 리턴 될 때 연결이 닫힙니다. 스트리밍을 사용하면 가능한 한 오랜 시간 동안 연결이 열리고 기존 연결을 통해 새 데이터가 전송됩니다.

어떻게 달성되는지는 웹 브라우저마다 다릅니다. 즉 Comet이 해킹으로 분류 된 이유입니다. 다시 말하지만, 위키 피 디아 페이지는 필요한 거의 모든 정보를 제공해야합니다.

나는 (클라이언트에 초점을 맞춘) 실시간 웹 통신의 역사를 다루는 기사와 이유가 WebSockets are a game-changer 인 글을 썼다.

+0

Thx 많이 있습니다. 내 문제는 긴 폴링 그냥 재귀 아약스 호출 및 따라서 websockets 오른쪽 같지 않은? 어쨌든 위키는 그것을 덮어 버리고 기사에 감사드립니다. 그것도 통과 할 것입니다. – dinukadev

+0

@dinukadev Comet은 단지 long-polling이 아니며, 긴 폴링은 Comet이 달성되는 방법 중 하나이므로 동의어는 아닙니다. 스트리밍은 실제로 연결이 열려 있고 정보를 즉시 전송할 수 있기 때문에 더 나은 솔루션입니다. 긴 폴링을 사용하면 연결이 설정되지 않고 데이터가 유효 기간이 만료 될 수 있습니다 (오래된 경우). 내가 도와 줘서 고맙게 생각 했어. – leggetter

관련 문제