2011-08-19 4 views
1

나는 혜성에 초보적이다.Java에서 혜성을 이용한 웹 기반 채팅?

누구든지 웹 기반 채팅을 구현하는 방법을 말해 줄 수 있습니다. java (모든 웹 테크놀로지 예 : JSP, 서블릿 스트럿츠 등)에서 혜성을 사용하여 채팅 할 수 있습니다. ??

도움이 매우 적절합니다.

감사합니다.

+0

왜이 질문에 struts2 태그가 지정 되었습니까? –

+0

채팅 클라이언트와 같은 재미 있고 많은 사람들이 알고 있지만 좋은 자습서가 될 것입니다. – Quaternion

답변

2

maven (Struts2 웹 사이트)을 사용하여 기본 Struts2 응용 프로그램을 설정하십시오.

스프링 플러그인을 추가하십시오.

채팅 메시지 (List<Map<int, String>>)의 로그를 보관할 서비스 개체를 만듭니다. 추가 된 각 메시지는 제출 된 메시지와 함께 이전보다 큰 색인 1로 목록에 새 맵을 추가합니다. 목록이 특정 크기에 도달하면 최대 크기를 유지하기 위해 가장 낮은 메시지를 삭제하십시오. (더 나은 데이터 구조가 있지만이를 이해할 수 있습니다.)

Struts2-JSON 플러그인을 추가하십시오.

두 개의 json 작업 (Struts2-JSON 플러그인 사용법 읽기)을 작성하십시오. SendMessage 및 GetMessagesSince 동작. 또한 채팅 페이지를 생성하기위한 기본 동작을 생성합니다 (컨벤션 플러그인도 사용합니다).

SendMessage에는 메시지에 대한 설정자가 있습니다. 상태 (성공 또는 실패를 반환)에 대한 getter를 갖는 것이 좋습니다.

GetMessagesSince에는 {int, Strings}의 목록을 반환하는 메시지에 대한 getter가 있습니다. lastMessage (int)에 대한 setter가 있습니다.

이제 웹 페이지입니다. 이 때 'lastMessage'보다 큰 메시지를 얻으려면 짧은 폴링을 사용하면됩니다 (0에서 시작). jQuery 매직을 사용하면 GetMessagesSince의 응답을 얻을 수 있습니다 (채팅 클라이언트가 있으면 채팅 클라이언트를 시작합니다). GetMessagesSince의 새 값을 얻기 위해 목록의 마지막 메시지를 사용합니다.

일부 동시성 마법을 사용하면 긴 폴링을 구현할 수 있습니다. 사람들이 대화의 나이를 알 수 있도록 메시지에 날짜를 추가 할 수도 있습니다. 채팅 대기열의지도를 작성하여 다른 메시지 그룹을 추가 할 수도 있습니다 (예 : Map<String, List<Map<int, String>>>).이 경우 채팅방을 식별하기 위해 문자열을 선택했습니다.

심각하다면 데모를 만들 수도 있습니다 (소리보다 쉽습니다).

+1

그냥 궁금한데 struts2와 채팅 클라이언트를 만들었습니까? – Quaternion

관련 문제