I am working on the server API right now. A few things to think about:
[ ] rfc6455 compliance (duh)
[ ] websocket compression extension
[ ] easy clustering (???, read into clustering, and look at what socketcluster does)
[ ] send accepting:
[ ] text
[ ] buffer
[ ] number (converted to text (?))
[ ] streams
[ ] max allowed frame size (?)
[ ] max allowed data size (?)
[ ] server client originator (which listener established the connection)
[ ] t i m e o u t s (+ browser tests, to see which browsers in fact do pings and pongs)
[ ] listening: allow no port for listening on random available port
[ ] pre-accept handshake verification: the ws module has it w/ options.verifyClient
[ ] subprotocol selector (automatic and manual)
things to consider:
[ ] server client UUID (probably not, as it should be left up to the frameworks)
[ ] server broadcasting to all clients (probably not, as again, it probably should be left up to the framework)
[ ] raw message streams (how will that be done?)
[ ] multiple protocol support (will the clients be separate classes per protocol due to how they can hugely vary in what they can and can't do, or a common class that does lots of conditionals?)
warn users about attaching multiple websocket servers to one http(s) server
look into http server creation, and seeing if allowHalfOpen is true
I am working on the server API right now. A few things to think about:
ws
module has it w/options.verifyClient
things to consider: