(fullname (concatenate 'string +static-files-root+ fname)))
(handle-static-file fullname)))
+(defvar *update-queue* (locked-queue:create))
+
+(defun update ()
+ "Send stream of updates to client"
+ (locked-queue:dequeue *update-queue*))
+
+(defun send (string)
+ "Push a javascript update fragment to the client."
+ (locked-queue:enqueue *update-queue* string))
+
(defun dispatch (request)
(let ((script-name (script-name request)))
(cond
((not (string-starts-with script-name +web-root+)) nil) ; do not handle this request
+ ((string= script-name "/eow/update") 'update)
((or (string-equal script-name +web-root-base+)
(string-equal script-name +web-root+)) (redirect +root-url+)) ; go to the start page
((string-starts-with script-name +static-web-root+) 'serve-static)))) ; serve static file