Добавить RealimeChat.dll как ассет в редакторе. Из зависимостей используется только Newtonsoft.Json, который включен в пакет Unity
Библиотека предоставляет класс WebSocketClient, который позволяет подключатся к комнате чата и получать/отправлять сообшения. Библиотека асинхронная, работа идёт с классом * *Task**.
Пример создания экземпляра клиента:
using System.Net.WebSockets;
using RealtimeChat.Client;
...
var client = new WebSocketClient("localhost", 8083, token);где указывается:
- Хост чата
- Порт чата
- Токен доступа, используемый для вызова серверных эндпоинтов
Далее, можно подписаться на события сокета: получения сообщения и сигнала о закрытие соединения.
client.MessageReceivedEvent += OnMessageReceived();
client.ConnectionClosedEvent += OnConnectionClosed();
private static Action<WebSocketReceiveResult> OnConnectionClosed()
{
return closeEvent => { Debug.Log($"Closed event: {closeEvent.CloseStatusDescription}"); };
}
private static Action<ChatMessage> OnMessageReceived()
{
return msg => { Debug.Log($"Message: {msg.Text}"); };
}Созданным клиентом можно подключиться к определенной комнате чата по её ID и начать "слушать" сокет:
client.ConnectAsync(roomId).GetAwaiter().OnCompleted(() =>
{
client.ListenAsync().Start();
Debug.Log($"Connected to chat room <{roomId}>");
});Пример отправки сообщений:
client.SendAsync("Hello mates!").Start();Пример закрытия соединиения
client.CloseAsync().GetAwaiter().OnCompleted(() =>
{
Debug.Log("Connection are closed");
});Сообщения чата (ChatMessage) содержат в себе:
- Text - сообщение чата
- CarxUserId - ID игрока
- UserName - ник игрока
- Timestamp - временная метка сообщения~~~~