Gateway requirements: - [ ] Listen for socket.io connections on `/gateway`. - [ ] Wait for client to emit registration event. - [ ] Limit registration wait to `n` seconds. - [ ] Close connections for any clients which fail registration. - [ ] On success, add client to registered pool. - [ ] Forward all chat messages which match registered filter to the registered pool. - [ ] Send chat messages whenever clients emit a message command. Registration requirements: - [ ] Client must provide all details as their first message after connecting. - [ ] `command`: Must be `register`. - [ ] `service.name`: Name of the service the client represents. - [ ] `filters`: Array of filter definitions. May be empty to receive all messages. Filter requirements: - [ ] Filter properties are combined (&&). - [ ] `regex`: Filter messages via regex. - [ ] `room_id`: Filter messages by room. - [ ] `user_id`: Filter messages by user. Message command requirements: - [ ] May be sent in either direction (client -> gateway -> tg or tg -> gateway -> client). - [ ] Contains all information needed to process the message and reply to it.
Gateway requirements:
/gateway.nseconds.Registration requirements:
command: Must beregister.service.name: Name of the service the client represents.filters: Array of filter definitions. May be empty to receive all messages.Filter requirements:
regex: Filter messages via regex.room_id: Filter messages by room.user_id: Filter messages by user.Message command requirements: