kopia lustrzana https://github.com/piku/piku
27 wiersze
800 B
Plaintext
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."))))
|
|
|