Общение в искусственном мире
Общение в искусственном мире (ИМ) может быть реализовано самыми разными способами. Так как ИМ представляет собой сеть интернет, то способы общения реализуются механизмами интернет. Не буду утомлять, просто перечислю наиболее известные REST, RPC, COM/DCOM, CORBA, RMI, JMS, NET Remotin, различные брокеры сообщений.
Лично я для реализации общения в искусственном мире пока остановился на брокере сообщений NATS. Аббревиатура NATS означает «Нейронная автономная транспортная система» (Neural Autonomic Transport System). Говорят, что её создатель задумал NATS как платформу обмена сообщениями, которая функционирует подобно центральной нервной системе.
Главные достоинства NATS для меня — простота использования, производительность, масштабируемость и бесплатность.
Очень важно, что NATS работает на множестве платформ.
Собственно, сервер можно взять здесь https://github.com/nats-io/nats-server/releases/tag/v2.10.1 .
NATS поддерживает десятки языков программирования в базовом исполнении и больше десятка в расширенном.
https://nats.io/download/#connectors-and-utilities
На своем компьютере я запускаю сервер в операционной системе Windows с помощью командной оболочки PowerShell. Сервер запускается командой начинающейся с символов точка и обратная косая черта (в этой статье не отображается, как и картинки не вводятся) далее “nats-server.exe”.
Документацию можно почитать здесь https://docs.nats.io/ .
Для создания искусственного мира я в основном использую язык Python.
Для работы с брокером сообщений NATS я использую асинхронный клиент https://github.com/nats-io/nats.py .
Кроме этого планирую использовать язык Golang. Для общения с NATS есть клиент https://github.com/nats-io/nats.go .
Также планирую использовать язык Kotlin с клиентом Java https://github.com/nats-io/nats.java .
Общение может проходить в разных форматах:
- Запрос — ответ. Отправляется запрос, и приложение либо ждет ответа определенное время, либо получает ответ асинхронно.
- Публикация — подписка. Издатель отправляет сообщение по определенной теме, и активные в данный момент подписчики получают сообщение.
- Группы очередей. Подписчики регистрируются у издателя и издатель следит за тем, чтобы каждый зарегистрированный (в очереди) получил сообщение.
Пока всё.
Спрашивайте, критикуйте.