본문으로 건너뛰기

채팅 서버 연결

채팅 서버에 연결하는 방법을 설명합니다.

설명

ChatManager.Instance.Connect() 메서드를 호출하여 채팅 서버에 연결합니다. 연결 시 IChatListener 인터페이스를 구현한 객체를 전달해야 합니다.

메서드 정보

항목내용
메서드ChatManager.Instance.Connect(IChatListener listener)
콜백OnConnected() - 연결 성공 시 호출

Unity C# 사용 예제

using UnityEngine;
using UnityEngine.UI;

public class ChatExample : MonoBehaviour, IChatListener
{
public InputField _inputChat;
public Text _textView;

private string myChannel = "Default Channel";

void Start()
{
ChatManager.Instance.Connect(this);
}

#region IChatListener

public void OnConnected()
{
Debug.Log("Chat Connected");
ChatManager.Instance.Subscribe("CH01");
}

public void OnDisconnected()
{
Debug.Log("Chat Disconnected");
}

public void OnError(string code, string message)
{
Debug.LogError($"Chat Error: [{code}] {message}");
}

public void OnPublicMessage(ChatUserInfo sender, string message)
{
Debug.Log($"[{sender.visitorName}] {message}");
_textView.text += $"\n[{sender.visitorName}] {message}";
}

public void OnPrivateMessage(ChatUserInfo sender, string message)
{
Debug.Log($"[귀속말 from {sender.visitorName}] {message}");
}

public void OnNotifyMessage(ChatUserInfo sender, string message)
{
Debug.Log($"[시스템] {message}");
_textView.text += $"\n[{sender.visitorName}] {message}";
}

public void OnSubscribed(ChatUserInfo user)
{
Debug.Log($"{user.visitorName} 입장");
_textView.text += $"\n[{user.visitorName}] 입장";
}

public void OnUnSubscribed(ChatUserInfo user)
{
Debug.Log($"{user.visitorName} 퇴장");
_textView.text += $"\n[{user.visitorName}] 퇴장";
}

public void OnChannels(ChatChannelInfo[] channels)
{
foreach (var channel in channels)
Debug.Log($"Channel: {channel.channel}, Users: {channel.count}");
}

public void OnPlayerOnline(ChatPlayerInfo[] players)
{
foreach (var player in players)
Debug.Log($"Player: {player.userUniqueId}, Online: {player.online}");
}

#endregion
}