2010-12-15 5 views
0

자바 기반 웹 응용 프로그램 (struts 1.2)이 있습니다. 프론트 엔드 (jsp)에 상태를 표시해야한다는 요구 사항이 있습니다. 이제 내 서버가 다른 서버에 의해 통지를 받으면 상태가 변경 될 수 있습니다. 하지만이 상태 변경을 브라우저에 알리고 싶습니다.서버의 이벤트에 대해 브라우저에 알리기

간격을두고 새로 고침하고 싶지 않습니다. 오히려 저는 Gmail 채팅에서 한 것처럼 구현해야합니다. 브라우저에서 서버의 이벤트를 변경하여 알림을받습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

상태 요청에 대한 서버 요청을 열 때 생각하고 있었고 서버 끝에서 요청을 보류하고 상태가 변경 될 때까지 응답하지 않았습니다. 어떤 포인터, 이것에 대한 예제?

답변

1

가능한 최상의 솔루션은 XMPP 프로토콜을 사용하는 것입니다. 표준화되어 있으며 많은 오픈 소스 솔루션이 몇 분 안에 시작됩니다. Smack, StropheJSOpenfire의 조합을 사용하여 원하는대로 Java 기반 앱 작업을 얻을 수 있습니다.

1

Long Polling (Comet)이라는 방법이 있습니다. 기본적으로 서버에 요청을 보냅니다. 서버에서 생성 된 요청 스레드는 사용자에게 새로운 데이터를 기다리고 시간 제한은 1 분 이상일 수 있습니다. 새 데이터를 사용할 수있게되면 반환됩니다.

주요 문제는 서버 쪽 문제를 해결하는 것입니다. 새 사용자를 기다리는 모든 사용자에 대해 하나의 스레드를 갖고 싶지는 않습니다. 물론 백 엔드에 따라 일부 비동기 메서드를 사용할 수도 있습니다.

참조 : http://en.wikipedia.org/wiki/Push_technology

다른 방법은 WebSocket을를 사용하는 것입니다. 문제는 현재 모든 브라우저에서 지원되지 않는다는 것입니다.

관련 문제