# 채팅 메시지 이벤트
채팅 메시지는 수신 시 Channel
객체를 통해서 MessageHandler
의 메서드가 실행됩니다. 사용자는 MessageHandler
를 상속받아 사용자의 EventHandler를 정의하여, channel.SetHandler(new MessageHandlerEx(this))
메서드를 이용해 이벤트 핸들러를 Channel
객체에 등록할 수 있습니다.
# 시작하기
# MessageHandler 클래스 상속받기
우선 MessageHandler
를 상속받는 새로운 class를 생성합니다. 아래 예제에서는 MessageHandlerEx
라는 이름을 사용했습니다.
public class MessageHandlerEx : MessageHandler
{
private UnityVChat _unityVChat;
public MessageHandlerEx(UnityVChat unityVChat)
{
_unityVChat = unityVChat;
}
public MessageHandlerEx()
{
}
public override void OnNotifyMessage(JObject data)
{
UnityMainThreadDispatcher.Instance().Enqueue(() =>
{
_unityVChat.AddMessageToChat(data["nickName"] + " " + data["message"]);
});
}
}
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
아래에는 각각의 이벤트에 대한 설명과, 샘플 앱 에서 사용한 예제코드가 첨부되어 있습니다. 필요한 메서드들을 새로운 class에 오버라이딩해서 정의하면 됩니다.
# 메시지 수신 이벤트
일반 메시지 수신 시 실행되는 함수입니다.
- 예제 코드
public override void OnNotifyMessage(JObject data)
{
UnityMainThreadDispatcher.Instance().Enqueue(() =>
{
_unityVChat.AddMessageToChat(data["nickName"] + " " + data["message"]);
});
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
파라미터 값
값 식별자 설명 data JObject 수신한 메시지
# 유저 접속 이벤트
유저 접속 시 실행되는 함수입니다.
- 예제 코드
public override void OnNotifyJoinUser(JObject data)
{
UnityMainThreadDispatcher.Instance().Enqueue(() =>
{
_unityVChat.AddMessageToChat(data["nickName"] + "님이 입장하셨습니다.");
});
}
1
2
3
4
5
6
7
2
3
4
5
6
7
파라미터 값
값 식별자 설명 data JObject 수신한 메시지
# 유저 퇴장 이벤트
접속중인 유저가 퇴장 시 실행되는 함수입니다.
- 예제 코드
public override void OnNotifyLeaveUser(JObject data)
{
UnityMainThreadDispatcher.Instance().Enqueue(() =>
{
_unityVChat.AddMessageToChat(data["nickName"] + "님이 나가셨습니다.");
});
}
1
2
3
4
5
6
7
2
3
4
5
6
7
파라미터 값
값 식별자 설명 data JObject 수신한 메시지