superset/superset-websocket/utils
Rob DiCiuccio 806fb73d25
feat(SIP-39): Websocket sidecar app (#11498)
* WIP node.js websocket app

* Load testing

* Multi-stream publish with blocking reads

* Use JWT for auth and channel ID

* Update ws jwt cookie name

* Typescript

* Frontend WebSocket transport support

* ws server ping/pong and GC logic

* ws server unit tests

* GC interval config, debug logging

* Cleanup JWT cookie logic

* Refactor asyncEvents.ts to support non-Redux use cases

* Update tests for refactored asyncEvents

* Add eslint, write READMEs, reorg files

* CI workflow

* Moar Apache license headers

* pylint found something

* adjust GH actions workflow

* Improve documentation & comments

* Prettier

* Add configurable logging via Winston

* Add SSL support for Redis connections

* Fix incompatible logger statements

* Apply suggestions from code review

Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>

* rename streamPrefix config

Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>
2021-04-08 11:12:03 -07:00
..
client-ws-app feat(SIP-39): Websocket sidecar app (#11498) 2021-04-08 11:12:03 -07:00
README.md feat(SIP-39): Websocket sidecar app (#11498) 2021-04-08 11:12:03 -07:00
loadtest.js feat(SIP-39): Websocket sidecar app (#11498) 2021-04-08 11:12:03 -07:00

README.md

Test & development utilities

The files provided here are for testing and development only, and are not required to run the WebSocket server application.

Test client application

The Express web application in client-ws-app is provided for testing the WebSocket server. See client-ws-app/README.md for details.

Load testing script

The loadtest.js script is provided to populate the Redis streams with event data.

Running

node loadtest.js

The script will populate data continually until the script is exited using CTRL-C.

Note: loadtest.js and test client application are configured to use the server's local config.json values, so care should be taken to not overwrite any sensitive data.