From f189dfdf4f089442246c2116d0bcc8ba6439e6c8 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sat, 9 Aug 2014 22:45:09 -0700 Subject: [PATCH] Attempt at better error handling in websocket server --- minimart/drivers/websocket.rkt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/minimart/drivers/websocket.rkt b/minimart/drivers/websocket.rkt index d12b5c7..4051a79 100644 --- a/minimart/drivers/websocket.rkt +++ b/minimart/drivers/websocket.rkt @@ -90,7 +90,9 @@ never-evt (handle-evt c-input-port (lambda (dummy) - (define msg (ws-recv c #:payload-type 'text)) + (define msg + (with-handlers ([exn:fail:network? (lambda (e) eof)]) + (ws-recv c #:payload-type 'text))) (send-ground-message (websocket-incoming-message id msg)) (loop (or blocked? (eof-object? msg)))))))) (ws-close! c)) @@ -120,7 +122,7 @@ (define c (ws-connect (string->url url))) (define control-ch (make-channel)) (define id (gensym 'ws)) - (thread (lambda ()(connection-thread-loop control-ch c id))) + (thread (lambda () (connection-thread-loop control-ch c id))) (spawn-connection local-addr remote-addr id c control-ch)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;