Hi,
I'm trying to write an xmpp, which after receiving a message, pushes the
messages with a websocket using async-push. I can't figure out how to do
this because both xmpp and async-push use event handlers -- how do I chain
them together. This code doesn't work, but I guess you get the idea of what
I'm going for. Thanks in advance for any help!
(ns ws-rand.core
(:use aleph.http
noir.core
lamina.core)
(:require
[noir-async.core :as na]
[noir-async.utils :as na-util]
[noir.server :as nr-server]
[xmpp-clj :as xmpp]))
(defn handle-message [message]
(let [body (:body message)
from-user (:from-name message)]
; WRONG I don't know how to embed async-push inside of the handler.....
(na/defpage-async "/rand" {} conn
#(na/async-push conn body)
)))
(defn -main [& m]
(let [mode (keyword (or (first m) :dev))
port (Integer. (get (System/getenv) "PORT" "3000"))
noir-handler (nr-server/gen-handler {:mode mode})]
(xmpp/start-bot :username "[email protected]"
:password "password"
:host "jabber.org"
:domain "jabber.org"
:handler (var handle-message))
(start-http-server
(wrap-ring-handler noir-handler)
{:port port :websocket true})))
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en