문제

채팅 애플리케이션을 구현 해야하는 학교 프로젝트가 있으며 서버는 Java 웹 서비스가 될 것입니다.

문제는 항상 웹 서비스를 원격 기능을 호출하는 방법으로 생각했으며 웹 서비스에서 "세션"을 활성화하는 방법이나 현재 모든 사람들을 추적하는 방법을 전혀 모른다는 것입니다. 채팅, 객실 등

도움이 되었습니까?

해결책

내가 아는 한, 채팅 서버는 초기 연결 후 클라이언트를 알고 모든 클라이언트 메시지를 모든 클라이언트에게 보내야합니다. 이것은 확실히 일종의 세션 유지 보수를 요구합니다. 이를 수행하는 올바른 방법은 다음과 같습니다.

  1. 클라이언트는 웹 서비스를 '핸드 셰이크'로 호출하고 최소한의 식별 세부 정보를 제공합니다.
  2. 서버는 고유 한 클라이언트 식별자가 포함 된 승인을 반환합니다.
  3. 클라이언트는 웹 서비스 '메시지'를 호출하고 식별자와 함께 새 메시지를 보냅니다.
  4. 서버는 식별자로 클라이언트를 식별하고 모든 클라이언트에 메시지를 배포합니다.

웹 서비스는 본질적으로 풀 서비스이며 푸시하지 않기 때문에 메시지 배포가 어떻게 작동 해야하는지 잘 모르겠습니다. 아마도 클라이언트는 서버가 호출 할 수 있도록 자체 웹 서비스를 노출해야 할 것입니다.

도움이 되었기를 바랍니다,

유발 = 8-)

다른 팁

구현을 고려할 수 있습니다 혜성 해결책. 이렇게하면 효과적으로 푸시 커뮤니케이션을 제공하므로 채팅 응용 프로그램의 매우 훌륭한 기능인 대기 시간을 제거합니다.

금을 찾으려면 더 고급 기능을 구현하는 것을 고려하십시오.

  • 맞춤법 검사
  • URL/이메일 주소는 자동으로 링크로 변환됩니다
  • 별도의 대화방
  • 중재자 함수 (채팅 종료, 킥 사용자)
  • "사용자가 입력 ..."와 같은 이벤트 정보
  • 상태 (사용 가능, 바쁜, 멀리 ...)
  • 아바타
  • ...

나는 Java를 모른다. 그래서이 대답은 언어 불가지론이 될 것이다.

제 생각에는 서버에서 프로세스를 실행하지 않고이 작업을 수행하는 가장 간단한 방법은 모든 데이터를 데이터베이스에 저장하는 것입니다.

다음은 수행해야 할 기본 사항의 짧은 목록입니다.

  1. 인증을 위해 사용자 목록과 암호가있는 테이블이 필요합니다.
  2. 현재 로그인 한 용도에 대한 테이블이 필요합니다
    A. 마지막 연락처의 타임 스탬프 필드가 필요합니다.
  3. 사용자가 현재 시간에 마지막 연락처 필드를 업데이트 할 때
  4. 사용자의 마지막 연락 시간이> 현재 시간 + 2 분인 경우 로그 아웃됩니다.
  5. 클라이언트 측 응용 프로그램은 "Im 아직도 여기에 메신저"라고 말하기 위해 정기적 인 메시지를 서버에 보내야합니다.
  6. 메시지가 언제 전송되었는지 확인하고 메시지가 수신 된 클라이언트 디스플레이를 업데이트 할시기를 찾는 방법을 찾아야합니다.

여전히 도움이 필요한 경우 여기에 도움이 필요하다면 여기에 Ajax/ASP.NET 채팅 앱이 있습니다.

백그라운드에 서비스가있는 채팅 엔진과 데이터베이스에 저장된 모든 것, 입력 양식 프레임 및 HTML 스트림을받은 출력 프레임을 작성했습니다.

서비스 부품을 건너 뛰고 웹 서비스를 통해서만 구현하려면, 입력에 대한 게시물과 채팅의 출력을 수신하려면 getLatestChanges : 일부 JavaScript 매직을 사용하여 HTML로 변환됩니다.

물론 Unknwntech가 스케치 한 사용자가 어떤 텍스트 등을받는 객실, 사용자, 메시지를 추적해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top