跳转到主要内容

聊天服务器连接

介绍如何连接到聊天服务器。

说明

调用 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
}