Skip to content

Instantly share code, notes, and snippets.

@jasom
Created December 27, 2017 23:38
Show Gist options
  • Save jasom/068fab7ebf8acaf78756dc8238d73a8a to your computer and use it in GitHub Desktop.
Save jasom/068fab7ebf8acaf78756dc8238d73a8a to your computer and use it in GitHub Desktop.
Websockets + static content with clack
(defvar *static-server* (lack.app.file:make-app))
(defun my-server (env)
(cond
((equal (getf env :path-info) "/socket")
(let ((ws (websocket-driver:make-server env)))
(websocket-driver:on
:message ws
(lambda (message)
(websocket-driver:send ws message)))
(lambda (responder)
(declare (ignorable responder))
(websocket-driver:start-connection ws))))
(t (funcall *static-server* env))))
(defun runme ()
(clack:clackup 'my-server :port 5000))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment