A simple clojure/core.async wrapper around browser WebSocket that communicates via EDN.
channel out === pr-str ======> WebSocket send
channel in <== read-string == WebSocket onmessage
cljs-websockets-async.core/connect!
(source)
returns a channel that passes a value once
the WebSocket connection has been established.
Example:
(ns cljs-websockets-async
(:require [cljs-websockets-async.core :as websocket]
[cljs.core.async :as async :refer [<! >!]])
(:require-macros [cljs.core.async.macros :refer [go]]))
;; Connect to websocket
;; Continuously recieve a sequence of values from WebSocket
;; Increment values and send back over WebSocket
(go
(let [{:keys [in out]} (<! (websocket/connect! "ws://localhost:8080"))]
(loop []
(when-let [data (<! in)]
(>! out (map inc data))
(recur)))))
lynaghk/jetty7-websockets-async provides a similar library for jetty7.
Copyright © 2013 Logan Linn
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close