Game Chat에서는 클라이언트 측에서 발생하는 다양한 이벤트를 처리할 수 있는 이벤트 리스너(Event Listener) 기능을 제공합니다.
이 기능을 통해 사용자는 채팅 어플리케이션 내에서 일어나는 여러 상황을 실시간으로 모니터링하고 적절하게 반응할 수 있습니다. 아래는 주요 이벤트들과 이벤트 핸들링 방법에 대한 설명입니다.
주요 이벤트 타입
메시지 수신: 새로운 메시지가 수신되었을 때 트리거됩니다.
메시지 삭제: 메시지가 삭제되었을 때 트리거됩니다.
오류 메시지: 오류가 발생했을 때 트리거됩니다.
접속 성공: 서버에 성공적으로 연결되었을 때 트리거됩니다.
접속 종료: 서버 연결이 종료되었을 때 트리거됩니다.
타이핑 시작/종료: 사용자가 타이핑을 시작하거나 종료할 때 각각 트리거됩니다.
멤버 추가/제거: 채널에 사용자가 추가되거나 제거될 때 트리거됩니다.
멤버 정지/탈퇴: 사용자가 채널에서 정지 당하거나 탈퇴할 때 트리거됩니다.
다음은 클라이언트 측에서 이벤트를 수신하는 방법입니다.
nc.dispatcher.onMessageReceived+= message =>{Console.WriteLine("received a new message: ", message);}
이벤트 핸들러 연결 및 해제
이벤트 핸들러를 사용하여 다양한 이벤트를 수신하고, 필요한 로직을 구현할 수 있습니다.
아래 코드는 각 이벤트에 대한 이벤트 핸들러 연결 및 해제 방법을 보여줍니다.
// 메시지 수신nc.dispatcher.onMessageReceived+= e =>{Console.WriteLine("onMessageReceived: ", e);};// 메시지 삭제nc.dispatcher.onMessageDeleted+= e =>{Console.WriteLine("onMessageDeleted: ", e);};// 오류 메시지nc.dispatcher.onErrorReceived+= e =>{Console.WriteLine("[CloudChatSample] onErrorReceived: ", e);};// 접속 성공nc.dispatcher.onConnected+= e =>{Console.WriteLine("[CloudChatSample] Connected to server with id: {0} ", e);};// 접속 종료nc.dispatcher.onDisconnected+= e =>{Console.WriteLine("Disconnected");};// 타이핑을 시작할 경우nc.dispatcher.onStartTyping+= e =>{Console.WriteLine("onStartTyping: ", e);};// 타이핑을 종료할 경우nc.dispatcher.onStopTyping+= e =>{Console.WriteLine("onStopTyping: ", e);};// 채널에 사용자가 구독 한 경우nc.dispatcher.onMemberAdded+= e =>{Console.WriteLine("onMemberAdded: ", e);};// 채널에 사용자가 구독 해지 경우nc.dispatcher.onMemberLeft+= e =>{Console.WriteLine("[CloudChatSample] onMemberLeft: ", e);};// 채널에 사용자가 정지를 당한 경우nc.dispatcher.onMemberBanned+= e =>{Console.WriteLine("[CloudChatSample] onMemberBanned: ", e);};// 채널에 사용자가 탈퇴를 한 경우nc.dispatcher.onMemberDeleted+= e =>{Console.WriteLine("[CloudChatSample] onMemberDeleted: ", e);};nc.dispatcher.onSubscriptionUpdated+= e =>{Console.WriteLine("[CloudChatSample] onSubscriptionUpdated: ", e);};
이벤트 리스너를 활용함으로써, Game Chat 사용자는 채팅 환경의 변화를 실시간으로 파악하고 적절히 대응할 수 있습니다.