Skip to content

Add support of distributed servers/managers #13

Description

@tmptrash

Поддержка нескольких инстансов/процессов. Они должны общаться между собой с помощью 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 серверов вокруг в виде сокетов

20170923_162950

Metadata

Metadata

Assignees

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions