nervous-systems / kvlt

Multi-target Clojure/script HTTP client
The Unlicense
69 stars 8 forks source link

Unable to set `:max-frame-payload` for Clojure `websocket!` #31

Closed jonathanj closed 6 years ago

jonathanj commented 6 years ago

This value defaults to 65536 in Aleph, which seems like a reasonable default, however I'm running into a problem where the first payload on a Websocket is a pile of state (the current order book from Poloniex) which is considerably bigger than 65536 bytes. This causes the connection to be immediately killed. I've confirmed this by manually invoking aleph.http/websocket-client with a bigger :max-frame-payload.

Similar options don't seem to exist in the JavaScript WebSocket implementations, so this would probably only be applicable to the Clojure implementation.

I'm happy to supply the necessary PR, do you have a suggestion better than simply adding an :opts key to websocket/request!? It might be nice to upgrade Aleph to 0.4.4, there don't seem to be any breaking changes between 0.4.2 and 0.4.4: https://github.com/ztellman/aleph/blob/master/CHANGES.md

moea commented 6 years ago

Cool, a PR would be helpful. Maybe reading a kvlt.platform/max-frame-payload key from the existing map argument to request! would be the simplest way to handle this.