not clean, but works for Express routes and wss