Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support of distributed servers/managers #13

Closed
tmptrash opened this issue Aug 27, 2017 · 0 comments
Closed

Add support of distributed servers/managers #13

tmptrash opened this issue Aug 27, 2017 · 0 comments

Comments

@tmptrash
Copy link
Owner

tmptrash commented Aug 27, 2017

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

@tmptrash tmptrash added the new label Aug 27, 2017
@tmptrash tmptrash self-assigned this Aug 27, 2017
@tmptrash tmptrash added this to the v2.0 milestone Sep 20, 2017
tmptrash added a commit that referenced this issue Sep 26, 2017
tmptrash added a commit that referenced this issue Sep 26, 2017
… they both run by calling test.bat #13

added few tests for Server class
tmptrash added a commit that referenced this issue Sep 26, 2017
structure refactoring #13
tmptrash added a commit that referenced this issue Sep 27, 2017
tmptrash added a commit that referenced this issue Sep 27, 2017
added isRunning() method #13
tmptrash added a commit that referenced this issue Sep 28, 2017
Config class has moved in a root src folder #13
tmptrash added a commit that referenced this issue Sep 29, 2017
added OVERFLOW event to Server class #13
tmptrash added a commit that referenced this issue Sep 30, 2017
tmptrash added a commit that referenced this issue Oct 1, 2017
working on server/Api plugin #13
added test for Server class #40
tmptrash added a commit that referenced this issue Oct 3, 2017
tmptrash added a commit that referenced this issue Oct 4, 2017
tmptrash added a commit that referenced this issue Oct 4, 2017
tmptrash added a commit that referenced this issue Oct 4, 2017
tmptrash added a commit that referenced this issue Oct 7, 2017
added base class for other classes, which use plugins
removed old versions approach. for now it's only one version - 0.2
Client/Server WebSocket support
tmptrash added a commit that referenced this issue Oct 7, 2017
fixed protocol issues of Client/Server #13
tmptrash added a commit that referenced this issue Oct 7, 2017
@tmptrash tmptrash modified the milestones: v0.2 distributed system, v0.2.1 Distributed system improvements Nov 25, 2017
tmptrash added a commit that referenced this issue Dec 11, 2017
working on distributes servers logic #13
tmptrash added a commit that referenced this issue Dec 11, 2017
fixed console error if user runs app in 'single' mode
tmptrash added a commit that referenced this issue Dec 11, 2017
working on distributed servers calculations #13
tmptrash added a commit that referenced this issue Dec 11, 2017
tmptrash added a commit that referenced this issue Dec 18, 2017
VM code style refactoring
fixed an issue of two server son the same port #13
tmptrash added a commit that referenced this issue Dec 19, 2017
tmptrash added a commit that referenced this issue Dec 20, 2017
tmptrash added a commit that referenced this issue Dec 20, 2017
tmptrash added a commit that referenced this issue Dec 20, 2017
tmptrash added a commit that referenced this issue Jan 6, 2018
tmptrash added a commit that referenced this issue Jan 6, 2018
added connections arrows at the top left corner
tmptrash added a commit that referenced this issue Jan 8, 2018
fixed issue with incorrect average age calculation
tmptrash added a commit that referenced this issue Jan 9, 2018
@tmptrash tmptrash modified the milestones: v0.2.1 Distributed system improvements, v0.2.1.1 Distributed system release Jan 15, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant