piku/examples/nodejs-wisp/index.wisp

27 wiersze
800 B
Plaintext

#!/usr/bin/env wisp
(def express (require "express"))
(def expressws (require "express-ws"))
(def fs (require "fs"))
(let [app (express)
ews (expressws app)
port (or (aget process.env "PORT") 8000)
host (or (aget process.env "BIND_ADDRESS") "127.0.0.1")]
(app.get "/"
(fn [req res]
(res.sendFile (+ __dirname "/index.html"))))
(app.ws "/ws"
(fn [ws req]
(ws.on "message"
(fn [msg]
(console.log "Got message:" msg)
(.map (.-clients (ews.getWss))
(fn [c]
(c.send msg)))))
(ws.on "close" (fn [] (console.log "WebSocket was closed")))))
(app.listen port host (fn [] (console.log "App launched."))))