# 채팅 메시지 이벤트
채팅 메시지는 수신 시 Channel
객체를 통해서 ChannelHandler
의 메서드가 실행됩니다. 사용자는 ChannelHandler
를 상속받아 사용자의 EventHandler를 정의하여, VChatCloud.connect(handler)
메서드를 이용해 이벤트 핸들러를 Channel
객체에 등록할 수 있습니다.
# 시작하기
# ChannelHandler 클래스 상속받기
우선 ChannelHandler
를 상속받는 새로운 class를 생성합니다. 아래 예제에서는 CustomHandler
라는 이름을 사용했습니다.
class CustomHandler extends ChannelHandler {
/// 메시지 수신 시 실행
void onMessage(ChannelMessageModel message) {
// ...
}
/// 귓속말 수신 시 실행
void onWhisper(ChannelMessageModel message) {
// ...
}
// ...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
아래에는 각각의 이벤트에 대한 설명과, 샘플 앱 에서 사용한 예제코드가 첨부되어 있습니다. 필요한 메서드들을 새로운 class에 오버라이딩해서 정의하면 됩니다.
# 메시지 수신 이벤트
일반 메시지 수신 시 실행되는 함수입니다.
- 예제 코드
void onMessage(ChannelMessageModel message) {
var chatData = ChatItem.fromChannelMessageModel(message);
_channel.addChatLog(chatData);
}
1
2
3
4
5
2
3
4
5
파라미터 값
값 식별자 설명 message ChannelMessageModel (opens new window) 받은 메시지 데이터
# 귓속말 수신 이벤트
귓속말 수신 시 실행되는 함수입니다.
- 예제 코드
void onWhisper(ChannelMessageModel message) {
var chatData = ChatItem.fromChannelMessageModel(message)
..messageType = MessageType.whisper;
_channel.addChatLog(chatData);
}
1
2
3
4
5
6
2
3
4
5
6
파라미터 값
값 식별자 설명 message ChannelMessageModel (opens new window) 받은 메시지 데이터
# 공지사항 수신 이벤트
운영자의 공지사항 수신 시 실행되는 함수입니다.
- 예제 코드
void onNotice(ChannelMessageModel message) {
var chatData = ChatItem.fromChannelMessageModel(message)
..messageType = MessageType.notice;
_channel.addChatLog(chatData);
}
1
2
3
4
5
6
2
3
4
5
6
파라미터 값
값 식별자 설명 message ChannelMessageModel (opens new window) 받은 메시지 데이터
# 유저 접속 이벤트
유저 접속 시 실행되는 함수입니다.
- 예제 코드
void onJoinUser(ChannelMessageModel message) async {
var chatData = ChatItem.fromChannelMessageModel(message)
..messageType = MessageType.join
..clientKey = '';
_channel.addChatLog(chatData);
if (_channel.channel != null) {
_channel.setClientList(await _channel.channel!.requestClientList());
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
파라미터 값
값 식별자 설명 message ChannelMessageModel (opens new window) 받은 메시지 데이터
# 유저 퇴장 이벤트
접속중인 유저가 퇴장 시 실행되는 함수입니다.
- 예제 코드
void onLeaveUser(ChannelMessageModel message) {
var chatData = ChatItem.fromChannelMessageModel(message)
..messageType = MessageType.leave
..clientKey = '';
_channel.addChatLog(chatData);
}
1
2
3
4
5
6
7
2
3
4
5
6
7
파라미터 값
값 식별자 설명 message ChannelMessageModel (opens new window) 받은 메시지 데이터
# 커스텀 이벤트 수신 이벤트
커스텀 이벤트 수신 시 실행되는 함수입니다.
- 예제 코드
void onCustom(ChannelMessageModel message) {
// 개인의 CustomEvent에 맞는 코드 작성
}
1
2
3
4
2
3
4
파라미터 값
값 식별자 설명 message ChannelMessageModel (opens new window) 받은 메시지 데이터