Liking cljdoc? Tell your friends :D

cljs-websockets-async

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

Usage

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)))))

See Also

lynaghk/jetty7-websockets-async provides a similar library for jetty7.

License

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