Socket.io를 이용하여 실시간 양방향 통신 기능을 구현한 채팅 프로그램입니다.
- 개발 언어 및 기술: Java, Socket.io, Swing
-
유저
- 유저 로그인시 접속자 목록에 추가, 로그아웃시 접속자 목록에서 삭제
- 유저들 초대해 단톡방 생성
- 단톡방에서 유저 나가면 채팅창, 채팅 목록 업데이트
- 나와의 채팅방 구현
-
채팅방
- 메세지, 사진, 이모티콘 전송
- 프로필 사진, 이름, 보낸 시간 표시
- 대화 내용 저장
- 대화 내용 모두 삭제
- 채팅방 배경색 변경
-
채팅 목록
- 각 채팅방의 참여자, 마지막 메시지, 보낸 시간 출력
-
프로필
- 프로필 사진 변경시 접속자 목록과 채팅방에 프로필 사진 업데이트
- 프로필 사진 클릭 시 크게 보기
Protocol | 내용 | 방향 |
---|---|---|
100 | Login | Client -> Server |
101 | 새로운 유저 리스트 받기 | Server -> Client |
210 | 단체 채팅 Message | Client -> Server -> Client |
300 | Image | Client -> Server -> Client |
400 | Logout | Client -> Server |
500 | 채팅방 생성 | Client -> Server |
550 | 본인이 초대된 채팅방 정보 받기 | Server -> Client |
560 | 채팅방 나간 유저 정보 전송 | Client -> Server -> Client |
700 | 프로필 변경 | Client -> Server |
750 | 변경된 프로필 유저들에게 알림 | Server -> Client |
유저 이름을 입력해 입장합니다.
입장하면 접속자 리스트에 추가됩니다. 프로필을 바뀌면 나 자신과 다른 사람 모두에게 바뀐 프로필이 보여집니다.
프로필 사진을 확대하여 볼 수 있습니다.
단톡방에 사람들을 초대해 채팅방을 생성합니다. 채팅방에서 메세지와 이미지를 전송합니다.
이모티콘 버튼을 눌러 이모티콘을 전송합니다.
대화 내용 삭제 버튼을 누르면 내 채팅방 안의 채팅 내용들이 사라집니다.
채팅방 나가기 버튼을 누르면 남은 유저들에게 나갔다는 문구가 출력되고, 나간 유저를 제외한 나머지 사람들의 이름만 보여집니다. 나간 유저는 채팅창이 사라짐과 동시에 나간 채팅방이 채팅 목록에서 사라집니다.
‘나와의 채팅’ 버튼을 클릭하면 나 자신만 있는 채팅방이 만들어집니다.
‘배경색 변경’ 버튼을 누르면 채팅방 색깔이 변경됩니다.
로그아웃한 유저들은 리스트에서 사라집니다.