채팅방 전체 메시지 이벤트
이 페이지에서는 채팅방 내의 모든 사용자에게 실시간으로 전달되는 다양한 이벤트들을 다룹니다. 공지, 사용자 접속/퇴장, 강퇴, 음소거 등 채팅방 운영 및 사용자 인터랙션에 필수적인 이벤트들의 정보와 적용 코드를 확인할 수 있습니다.
공지 메시지 수신 이벤트
채팅방 관리자 등이 발송한 공지 메시지를 수신했을 때 발생하는 이벤트입니다.
java
public void onNotifyNotice(JSONObject data) { // 공지 이벤트
Log.d("메시지", data);
Message msg = new Message(data);
msg.setType("notice");
messageExposure(msg, false);
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
수신된
JSONObject
데이터 구조값 식별자 설명 roomId String 채팅방 생성 후 발급받은 Channel Key nickName String 채팅방 입장 유저의 별명 clientKey String 메시지를 전송한 접속 단말 설정 고유키 message Date 전송한 메시지 mimeType String 메시지 형태 (text: 일반텍스트, emoji: 이모지) messageType String 빈값이면 일반 메시지, 공지일경우 : "notice" messageDt String 전송 날짜 messageCount String 채팅방 메시지 전송 수 grade String 메시지를 전송한 유저의 등급 ( 사용자등급표에서 확인 )
사용자 접속 이벤트
새로운 사용자가 채팅방에 접속했을 때 발생하는 이벤트입니다.
java
public void onNotifyJoinUser(JSONObject data) { // 접속 이벤트
Log.d("메시지", data);
Message msg = new Message(data);
if (!nick_name.equalsIgnoreCase(msg.getNickName())) {
msg.setType("join");
msg.setMessage(msg.getNickName() + " 님이 입장하셨습니다.");
messageExposure(msg, false);
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
수신된
JSONObject
데이터 구조값 식별자 설명 roomId String 채팅방 생성 후 발급받은 Channel Key nickName String 채팅방 입장 유저의 별명 clientKey String 메시지를 전송한 접속 단말 설정 고유키 joinCount String 누적 유저수 grade String 메시지를 전송한 유저의 등급 ( 사용자등급표에서 확인 )
사용자 퇴장 이벤트
사용자가 채팅방에서 나갔을 때 발생하는 이벤트입니다.
java
public void onNotifyLeaveUser(JSONObject data) { // 사용자 퇴장 이벤트
Log.d("메시지", data);
Message msg = new Message(data);
msg.setType("leave");
msg.setMessage(msg.getNickName() + " 님이 나가셨습니다.");
messageExposure(msg, false);
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
수신된
JSONObject
데이터 구조값 식별자 설명 nickName String 채팅방 입장 유저의 별명
채팅방에서 추방 이벤트
채팅방 관리자에 의해 강퇴된 사용자의 강퇴가 해제되었을 때 발생하는 이벤트입니다.
java
public void onNotifyKickUser(JSONObject data) { // 추방 이벤트
Log.d("메시지", data);
Message msg = new Message(data);
msg.setType("kick");
messageExposure(msg, false);
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
수신된
JSONObject
데이터 구조값 식별자 설명 nickName String 채팅방 입장 유저의 별명
채팅방에서 추방해제 이벤트
채팅방 관리자에 의해 강퇴된 사용자의 강퇴가 해제되었을 때 발생하는 이벤트입니다.
java
public void onNotifyUnkickUser(JSONObject data) { // 추방 해제 이벤트
Log.d("메시지", data);
Message msg = new Message(data);
msg.setType("unKick");
messageExposure(msg, false); // 화면에 메시지 표시
}
1
2
3
4
5
6
7
2
3
4
5
6
7
수신된
JSONObject
데이터 구조값 식별자 설명 clientKey String 메시지를 전송한 접속 단말 설정 고유키 messageDt String 전송 날짜
채팅방에서 글쓰기 제한 이벤트
채팅방 관리자에 의해 특정 사용자의 글쓰기가 제한되었을 때 발생하는 이벤트입니다.
java
public void onNotifyMuteUser(JSONObject data) { // 음소거 이벤트
Log.d("메시지", data);
Message msg = new Message(data);
msg.setType("mute");
messageExposure(msg, false); // 화면에 메시지 표시
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
수신된
JSONObject
데이터 구조값 식별자 설명 nickName String 채팅방 입장 유저의 별명 clientKey String 메시지를 전송한 접속 단말 설정 고유키 messageDt String 전송 날짜
채팅방에서 글쓰기 제한해제 이벤트
채팅방 관리자에 의해 글쓰기 제한이 해제되었을 때 발생하는 이벤트입니다.
java
public void onNotifyUnmuteUser(JSONObject data) { // 음소거 해제 이벤트
Log.d("메시지", data);
Message msg = new Message(data);
msg.setType("unMute");
messageExposure(msg, false);
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
수신된
JSONObject
데이터 구조값 식별자 설명 nickName String 채팅방 입장 유저의 별명 clientKey String 메시지를 전송한 접속 단말 설정 고유키 messageDt String 전송 날짜
전체 코드
메시지 이벤트 전체코드
java
channel.setHandler(new MessageHandler() {
public void onNotifyNotice(JSONObject data) { // 공지 이벤트
Message msg = new Message(data);
msg.setType("notice");
messageExposure(msg, false);
}
public void onNotifyJoinUser(JSONObject data) { // 접속 이벤트
Message msg = new Message(data);
if (!nick_name.equalsIgnoreCase(msg.getNickName())) {
msg.setType("join");
msg.setMessage(msg.getNickName() + " 님이 입장하셨습니다.");
messageExposure(msg, false);
}
}
public void onNotifyLeaveUser(JSONObject data) { // 접속 해제 이벤트
Message msg = new Message(data);
msg.setType("leave");
msg.setMessage(msg.getNickName() + " 님이 나가셨습니다.");
messageExposure(msg, false);
}
public void onNotifyKickUser(JSONObject data) { // 추방 이벤트
Message msg = new Message(data);
msg.setType("kick");
messageExposure(msg, false);
}
public void onNotifyUnkickUser(JSONObject data) { // 추방 해제 이벤트
Message msg = new Message(data);
msg.setType("unKick");
messageExposure(msg, false);
}
public void onNotifyMuteUser(JSONObject data) { // 음소거 이벤트
Message msg = new Message(data);
msg.setType("mute");
messageExposure(msg, false);
}
public void onNotifyUnmuteUser(JSONObject data) { // 음소거 해제 이벤트
Message msg = new Message(data);
msg.setType("unMute");
messageExposure(msg, false);
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53