# 채팅 메시지 이벤트

채팅 메시지는 수신 시 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

아래에는 각각의 이벤트에 대한 설명과, 샘플 앱 에서 사용한 예제코드가 첨부되어 있습니다. 필요한 메서드들을 새로운 class에 오버라이딩해서 정의하면 됩니다.

# 메시지 수신 이벤트

일반 메시지 수신 시 실행되는 함수입니다.

  • 예제 코드
public override void OnNotifyMessage(JObject data)
{

    UnityMainThreadDispatcher.Instance().Enqueue(() =>
    {
        _unityVChat.AddMessageToChat(data["nickName"] + " " + data["message"]);
    });
}
1
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
  • 파라미터 값

    식별자 설명
    data JObject 수신한 메시지

# 유저 퇴장 이벤트

접속중인 유저가 퇴장 시 실행되는 함수입니다.

  • 예제 코드
public override void OnNotifyLeaveUser(JObject data)
{
    UnityMainThreadDispatcher.Instance().Enqueue(() =>
    {
        _unityVChat.AddMessageToChat(data["nickName"] + "님이 나가셨습니다.");
    });
}
1
2
3
4
5
6
7
  • 파라미터 값

    식별자 설명
    data JObject 수신한 메시지
Copyright 2022. E7Works Inc. & JOYTUNE Corp. All Rights Reserved.