Поддержка нескольких инстансов/процессов. Они должны общаться между собой с помощью Client/Server модулей в "быстром" режиме. Можно ли это сделать вообще без сервера? Или может иметь только один координационный сервер.
Update:
-
При подключении клиента, сервер должен выдавать уникальный в пределах этого сервера id
-
Выданный id должен отправляться со всеми реквестами к серверу
-
Идентификатор региона (коондинаты X,Y клиента) должен знать только сервер
-
Каждый реквест к серверу имеет определенный формат и может быть односторонний или с ответом:
-> [id, param1, param2,...] request
<- [*] response
-
Реквесты от клиента к серверу (id params desc):
-> [0, clientId] run world on client
<- [Boolean|String] true or error message
-> [1, direction, org] organism is moving outside of the world
<- [Boolean|String] true or error message
-
Реквесты от сервера к клиенту:
-> [100, direction] siblling map is active
<- [] no
-
добавить логику отправки сервером всем клиентам флажков о том, что сервера со всех сторон активны или наоборот перестали быть активными, чтобы клиенты знали можно ли отправлять организмов в соседнюю карту или работать с ними локально
-
добавить расширение за счет увеличения серверов "вокруг". Сервера должны хранить сокеты всех 4-рех серверов вокруг. это должно работать так:
- каждый сервер может быть подключен к 4 серверам вокруг (верх, право, низ, лево)
- новый сервер может появится с любой стороны
- новый сервер должен создать от 1го до 4х клиентов для связи с серверами вокруг и постараться к ним подключиться. сервера в свою очередь, отреагируют и сохранят сокеты этих клиентов в такой же структуре (верх,...лево) в соотве-их направлениях
- каждый сервер содержит ссылки на 4 серверов вокруг в виде сокетов

Поддержка нескольких инстансов/процессов. Они должны общаться между собой с помощью Client/Server модулей в "быстром" режиме. Можно ли это сделать вообще без сервера? Или может иметь только один координационный сервер.
Update:
При подключении клиента, сервер должен выдавать уникальный в пределах этого сервера idВыданный id должен отправляться со всеми реквестами к серверуИдентификатор региона (коондинаты X,Y клиента) должен знать только серверКаждый реквест к серверу имеет определенный формат и может быть односторонний или с ответом:->
[id, param1, param2,...]request<-
[*]responseРеквесты от клиента к серверу (id params desc):->
[0, clientId]run world on client<-
[Boolean|String]true or error message->[1, direction, org]organism is moving outside of the world<-
[Boolean|String]true or error messageРеквесты от сервера к клиенту:->
[100, direction]siblling map is active<-
[]noдобавить логику отправки сервером всем клиентам флажков о том, что сервера со всех сторон активны или наоборот перестали быть активными, чтобы клиенты знали можно ли отправлять организмов в соседнюю карту или работать с ними локальнодобавить расширение за счет увеличения серверов "вокруг". Сервера должны хранить сокеты всех 4-рех серверов вокруг. это должно работать так: