Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Модуль подписки на сообщения

Реализация для адресной отправки сетевых сообщений между клиентом и сервисом посредством Mirror, для решения проблемы при получении сообщения без зарегистрированного обработчика.

Зависимости:

  • Unity 2022.3.62f3
  • Mirror Networking 96.0.1
  • VContainer 1.19.0

Реализация

Вводим служебное сообщение SubscriptionStateMessage для подтверждения локальной регистрации обработчика на стороне клиента. Сервис хранит и обрабатывает реестр подписчиков и рассылает сообщения HelloMessage только тем подключениям которые присутствуют в этой коллекции. За счет этого обеспечивается отправка сообщений только подтвержденным клиентам.

Для идентификации сообщений на сервере и клиенте введена структура NetworkMessageID. Она генерирует стабильный хэш посредством библиотеки Mirror.

Networking - Содержит регистрацию зависимостей на сцене и запуска клиента и сервиса;
Networking.Shared - Общая логика, структуры для клиента и сервиса;
Networking.Service - Логика обработки подписок сервисом;
Networking.Client - Логика обработки подписок клиентом.

Сценарий проверки реализации

  1. Запустить сервер или хост;
  2. Подключить клиента;
  3. После подключения на стороне клиента произойдет подписка на обработку сообщений типа HelloMessage и отправка сообщения SubscriptionStateMessage на сервис;
  4. После получения подтверждения от клиента сервис обработает сообщение SubscriptionStateMessage и и добавит идентификатор подключения в реестр подписчиков;
  5. После регистрации подписчика сервис отправит сообщение HelloMessage на клиента;
  6. После получения сообщения клиентом будет произведен вывод в консоль Hello Client!.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages