Roadmap
Closed this issue · 0 comments
codeofmochi commented
Tasks
General roadmap of the graasp-websockets project. Tasks that require additional comments and tracking will get their own issues.
Milestones:
- Simple broadcast abstraction over barebone websockets
- Integrate
fastify-websockets
and expose a fastify plugin (packed withfastify-plugin
) #2 - Channels abstraction with pub / sub mechanism
- Design
Message
type - Validation of client messages
- Hearbeat to keep list of connected clients up-to-date and avoid memory leaks (see https://github.com/websockets/ws#how-to-detect-and-close-broken-connections)
- Garbage collection of unused channels ?
- Integrate into graasp tasks using postHookHandlers
- Front-end integration
- Redis multi-instance layer
Fluff:
- Use semicolons, linter
- Write docs (together with code)
- Setup testing framework (Jest?)
- Setup CI with Github Actions (test, lint, coverage). See https://github.com/nektos/act for local setup?
- Better README with examples and all the good stuff
Notes
Using npm ci
instead of npm install
in .github/workflows/main.yml
results in SSH key errors in CI. Use npm install
instead.
Misc
- Should we remove
Message
types and subtypes and keep only types derived frommessage-schema.ts
? Pro: no duplication, con: rely on AJV + JTD. Also, can TS still discriminate union types with JTD'sdiscriminator
?