SyncHub Docs
Doctype
Doctype
  • Добро пожаловать в SyncHub
  • Установка
  • Руководство по первому запуску SyncHub
  • CommandHandler
  • Отправка сообщения
    • SendTo
    • TransportHeader
  • Приём сообщения
  • Методы
    • DataPacket
    • Logger
    • MainThread
    • NetClient
    • NetId
    • NetTransform
    • NetVector3
    • Serializer
    • Transport
Powered by GitBook
On this page
  • Шаг 1: Подключение необходимых библиотек
  • Шаг 2: Создание класса CommandHandler

Was this helpful?

CommandHandler

Шаг 1: Подключение необходимых библиотек

Добавьте следующие директивы, чтобы использовать необходимые библиотеки:

using SyncHubServer.Back;
using SyncHubServer.Elements;
using SyncHubToolkit.Tools;
using SyncHubToolkit.Common;
using SyncHubToolkit.Extension;

Шаг 2: Создание класса CommandHandler

Создайте новый класс CommandHandler, наследуемый от CommandData и реализующий интерфейс ICommandHandler:

public class CommandHandler : CommandData, ICommandHandler
{
    public async Task HandleCommand(NetClient client, byte[] data)
    {
        try
        {
            // Присвоение клиента
            Client = client;
            // Обновление времени последней активности клиента
            Client.SetActive();
            // Десериализация пакета данных
            Packet = await Serializer.Unpack(data);

                // Обработка команды в зависимости от OperationCode
                switch ((OperationCode)Packet.Header.OperationCode)
                {
                    case OperationCode.Unknown:
                        Logger.Log.Debug($"Unknown command received from {Client.Id}");
                        break;
                    // Добавьте дополнительные case для других OperationCode по мере необходимости
                    default:
                        break;
                }
        }
        catch (IOException ex)
        {
            Logger.Log.Debug($"IOException occurred for player: {ex.Message}");
        }
        catch (Exception ex)
        {
            Logger.Log.Debug($"Error occurred for player Handler: {ex.Message}");
        }
        finally
        {
            Dispose();
        }
    }
}

Это основы для создания класса CommandHandler. Добавьте дополнительные блоки case для других кодов операции в соответствии с вашими потребностями.

PreviousРуководство по первому запуску SyncHubNextОтправка сообщения

Last updated 1 year ago

Was this helpful?