Помощник подключения
Это компонент, который помогает выполнять подключение к серверу без написания своего кода. Он создан таким образом, чтобы автоматически выполнять подключение в случае его потери. Данный класс является производным от Singleton<T>, соответственно его жизненный цикл выполняется на протяжении всей игры до тех пор, пока вы его не уничтожите.
abstract class ConnectionHelper<T> : Singleton<T>
В фреймворке существует класс, который использует ConnectionHelper. Это класс подключения к мастер серверу. Он использует глобальное соединение, которое в свою очередь используется всеми основными системами фреймворка.
class ClientToMasterConnector : ConnectionHelper<ClientToMasterConnector>
Awake()
В методе Awake класса ClientToMasterConnector выполняется поиск аргументов командной строки, которые помогают установить IP адрес и порт мастер сервера.
protected override void Awake()
{
base.Awake();
// If master IP is provided via cmd arguments
if (Mst.Args.IsProvided(Mst.Args.Names.MasterIp))
{
serverIp = Mst.Args.MasterIp;
}
// If master port is provided via cmd arguments
if (Mst.Args.IsProvided(Mst.Args.Names.MasterPort))
{
serverPort = Mst.Args.MasterPort;
}
}
ConnectionFactory()
Метод ConnectionFactory создает новый экземпляр соединения. Для создания нового экземпляра соединения необходимо в своем классе, производном от ConnectionHelper переопределить метод ConnectionFactory как показано в примере внизу.
protected override IClientSocket ConnectionFactory()
{
return Mst.Create.ClientSocket();
}
SetIpAddress()
Метод SetIpAddress устанавливает IP адрес, к котрому должен подключиться клиент.
public void SetIpAddress(string serverIp);
SetPort()
Метод SetPort устанавливает порт, по которому клиент будет подключаться к серверу
public void SetPort(int serverPort);
StartConnection()
Метод StartConnection запускает соединение с указанными параметрами, такими как IP адрес сервера, порт сервера и количество попыток соединения с сервером.
// Start connection using default parameters
public void StartConnection();
// Start connection with the given number of attempts
public void StartConnection(int numberOfAttempts);
// Start connection with the given IP, port and number of attempts
public void StartConnection(string serverIp, int serverPort, int numberOfAttempts = 5);
События подключения и отключения
// Invokes when connection established
public UnityEvent OnConnectedEvent;
// Invokes when client disconnected
public UnityEvent OnDisconnectedEvent;
Инспектор свойств компонента ConnectionHelper
- LogLevel - Уровень логирования информации.
- ServerIP - Адрес подключения к серверу.
- ServerPort - Порт подключения к серверу.
- UseSsl - Использовать ли защищенное соединение при подключении к серверу.
- MinTimeToConnect - Минимальное время на попытку повторного подключения.
- Max Time To Connect - Максимальное время на попытку повторного подключения. При каждом повторном подключении время на попытку нового подключения увеличивается в два раза начиная с MinTimeToConnect, но не более чем MaxTimeToConnect.
- MaxAttemptsToConnect - Максимальное количество попыток повторного подключения.
- WaitAndConnect - Прежде чем начнется соединение с сервером система подождет указанное в этом параметре время.
- ConnectOnStart - Запускать ли соединение с сервером сразу же после старта игры.