reply using new reply method
[mudsync.git] / mudsync / networking.scm
index b938c8a9427bdf53936c44c1e9b7a045abdd4048..e553e01e811dfe85a55de611722966afae6b2dc7 100644 (file)
@@ -32,6 +32,7 @@
   #:use-module (web response)
   #:use-module (web uri)
   #:use-module (mudsync package-config)
+  #:use-module (mudsync contrib mime-types)
   #:use-module (rnrs io ports)
 
   #:export (;; Should we be exporting these?
         (pk 'web-server (create-actor nm <websocket-server>
                                       #:port web-server-port
                                       #:http-handler (wrap-apply http-handler)
-                                      #:websocket-handler (wrap-apply websocket-handler)))))
+                                      #:on-ws-message (wrap-apply websocket-new-message)))))
 
 (define (view:main-display request body)
   (define one-entry
            (head (title "Mudsync!")
                  (meta (@ (charset "UTF-8")))
                  (link (@ (rel "stylesheet")
-                          (href "/static/css/main.css"))))
+                          (href "/static/css/main.css")))
+                 (script (@ (type "text/javascript")
+                            (src "/static/js/mudsync.js"))))
            (body ,@body-tmpl)))
   (define (write-template-to-string)
     (with-fluids ((%default-port-encoding "UTF-8"))
 
 (define (view:render-static request body static-path)
   (values (build-response #:code 200
-                          ;; #:content-type (mime-type static-path)
-                          )
+                          #:headers `((content-type . (,(mime-type static-path)))))
           (call-with-input-file (web-static-filepath static-path) get-bytevector-all)))
 
 (define (view:standard-four-oh-four . args)
 
 ;; Respond to text messages by reversing the message.  Respond to
 ;; binary messages with "hello".
-(define (websocket-handler data)
-  (if (string? data)
-      (string-reverse data)
-      "hello"))
+(define (websocket-new-message websocket-server client-id data)
+  (<- (actor-id websocket-server) 'ws-send
+      client-id
+      (if (string? data)
+          (string-reverse data)
+          "hello")))