|
1141 | 1141 | #?(:cljs |
1142 | 1142 | (defn- create-js-client-websocket! |
1143 | 1143 | [{:as opts |
1144 | | - :keys [onerror-fn onmessage-fn onclose-fn binary-type |
1145 | | - uri-str headers]}] |
| 1144 | + :keys [onerror-fn onmessage-fn onclose-fn uri-str headers binary-type]}] |
1146 | 1145 |
|
1147 | 1146 | (when-let [WebSocket |
1148 | 1147 | (or |
|
1157 | 1156 | ;; Fires repeatedly (on each connection attempt) while server is down: |
1158 | 1157 | (aset "onclose" onclose-fn)) |
1159 | 1158 |
|
1160 | | - (when-let [bt binary-type] ; "arraybuffer" or "blob" (default) |
| 1159 | + (when-let [bt binary-type] ; "arraybuffer" or "blob" (js default) |
1161 | 1160 | (aset socket "binaryType" bt)) |
1162 | 1161 |
|
1163 | 1162 | socket)))) |
|
1190 | 1189 | backoff-ms-fn ; (fn [nattempt]) -> msecs |
1191 | 1190 | cbs-waiting_ ; {<cb-uuid> <fn> ...} |
1192 | 1191 | socket_ |
1193 | | - udt-last-comms_] |
| 1192 | + udt-last-comms_ |
| 1193 | + ws-opts] |
1194 | 1194 |
|
1195 | 1195 | IChSocket |
1196 | 1196 | (-chsk-disconnect! [chsk reason] |
|
1344 | 1344 | ?socket |
1345 | 1345 | (try |
1346 | 1346 | (create-websocket! |
1347 | | - {:onerror-fn onerror-fn |
1348 | | - :onmessage-fn onmessage-fn |
1349 | | - :onclose-fn onclose-fn |
1350 | | - :headers headers |
1351 | | - :uri-str |
1352 | | - (enc/merge-url-with-query-string url |
1353 | | - (merge params ; 1st (don't clobber impl.): |
1354 | | - {:client-id client-id |
1355 | | - :csrf-token (get-client-csrf-token-str :dynamic |
1356 | | - (:csrf-token @state_))}))}) |
| 1347 | + (merge ws-opts |
| 1348 | + {:onerror-fn onerror-fn |
| 1349 | + :onmessage-fn onmessage-fn |
| 1350 | + :onclose-fn onclose-fn |
| 1351 | + :headers headers |
| 1352 | + :uri-str |
| 1353 | + (enc/merge-url-with-query-string url |
| 1354 | + (merge params ; 1st (don't clobber impl.): |
| 1355 | + {:client-id client-id |
| 1356 | + :csrf-token (get-client-csrf-token-str :dynamic |
| 1357 | + (:csrf-token @state_))}))})) |
1357 | 1358 |
|
1358 | 1359 | (catch #?(:clj Throwable :cljs :default) t |
1359 | 1360 | (errorf t "WebSocket error") |
|
1687 | 1688 | ; w/in given msecs. Should be different to server's :ws-kalive-ms." |
1688 | 1689 |
|
1689 | 1690 | [path ?csrf-token-or-fn & |
1690 | | - [{:keys [type protocol host port params headers recv-buf-or-n packer ws-kalive-ms |
| 1691 | + [{:keys [type protocol host port params headers recv-buf-or-n packer ws-kalive-ms ws-opts |
1691 | 1692 | client-id ajax-opts wrap-recv-evs? backoff-ms-fn] |
1692 | 1693 | :as opts |
1693 | 1694 | :or {type :auto |
|
1754 | 1755 | ws-chsk-opts |
1755 | 1756 | (merge common-chsk-opts |
1756 | 1757 | {:url ws-url |
1757 | | - :backoff-ms-fn backoff-ms-fn}) |
| 1758 | + :backoff-ms-fn backoff-ms-fn |
| 1759 | + :ws-opts ws-opts}) |
1758 | 1760 |
|
1759 | 1761 | ajax-chsk-opts |
1760 | 1762 | (merge common-chsk-opts |
|
0 commit comments