Server is capable of distributing static content from the public
folder and establishing persistent connections, without encryption or compression routines.
Consider the following as a todo list.
WebSockets connections must be recorded in database and linked to the server.
Something like nginx or apache format.
Someone must be able to be authenticated and granted.
Someone with grants, must be able to dispatch a message to all but not himself.
Someone with and without grants, must be able to join to private or public channels.
Someone with or without grants, must be able to broadcast into public or/and private channels.
Instances can be agent or worker
Servers running as agent should be able to run, synchronize child processes as workers.
Worker process must notify when a new connection is established while agent should push the connection into a list when is notified.
While agent is responsible for workers and must have known who are and what are doing,
Workers are responsible for keeping client connections opened to receive and distribute messages.
Someone must be able to connect into a worker or agent node and broadcast the message to the subscribed clients.
Someone must be able to connect into a worker or agent and get authorized and subscribed to a private channel but a new connection notification must be sent.
Someone interested can deploy the system by
docker compose up
Someone should be able to send headers like X-Bin-Protocol
and X-JSON-Protocol
to reduce the response size.
Someone should be able to audit the system. It includes all the messages produced by the system.
Someone should be able to run the program, but it should not produce any kind of performance issue or memory leak.
Someone should be able to add a new layer to deal with SSL stuffs.
It's a good start point:
The goal is move those Next into the Features.
Q: How hard it's that?
A: It's like move a giant rock with the mind.
The software, code or repository, in any of its forms, adopted, present and future, is provided as is, which means that there is no guarantee of any kind, while permissive to carry out any type of development, whether technological or code , business or educational (exclusive), the owners of the code and even those interested or not interested, will be authorized to copy, modify and reproduce the code, publicly or privately, only after reading the license, as well as the obligation to render tribute, that is, the inclusion of this license in all distributions and execution instances of the program. In the event of any dispute or discrepancy, in any of the points and symbols herein, all rights and permissions will be revoked.