From 99e794ac00da5b07738b5a6f24e974d42cf43d6b Mon Sep 17 00:00:00 2001 From: Stephen Searles Date: Sun, 6 Aug 2017 21:12:39 -0700 Subject: [PATCH] making tests pass, but introduced a bug in the actual ui --- caddyhugo.go | 2 +- deltas.go | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/caddyhugo.go b/caddyhugo.go index 4499897..de60830 100644 --- a/caddyhugo.go +++ b/caddyhugo.go @@ -96,5 +96,5 @@ func (ch *CaddyHugo) TmplData(r *http.Request, docref *docref) interface{} { ch.HugoSites.Fs.Destination = afero.NewMemMapFs() ch.Build() } - return tmplData{ch.Site, r, ch, doc, docref} + return &tmplData{ch.Site, r, ch, doc, docref} } diff --git a/deltas.go b/deltas.go index b891d15..5c62a31 100644 --- a/deltas.go +++ b/deltas.go @@ -51,6 +51,8 @@ func (ch *CaddyHugo) DeltaWebsocket(w http.ResponseWriter, r *http.Request) (int return http.StatusBadRequest, err } + conn.SetReadDeadline(time.Time{}) + doc, err := ch.doc(r) if err != nil { fmt.Println(err) @@ -115,7 +117,7 @@ func (ch *CaddyHugo) handleConn(conn DeltaConn, doc *docref) (int, error) { err := conn.ReadJSON(&message) if err != nil { - errCh <- err + errCh <- fmt.Errorf("error reading message from client conn: %v", err) return } ch.ObserveLTime(message.LTime) @@ -127,7 +129,7 @@ func (ch *CaddyHugo) handleConn(conn DeltaConn, doc *docref) (int, error) { err = client.PushDeltas(message.Deltas...) if err != nil { - errCh <- err + errCh <- fmt.Errorf("error pushing deltas into document: %v", err) return } @@ -141,9 +143,17 @@ func (ch *CaddyHugo) handleConn(conn DeltaConn, doc *docref) (int, error) { }() for { + select { + case err := <-errCh: + fmt.Println(err) + return 500, err + default: + } + select { case <-timer.C: conn.WriteJSON(ch.Message()) + resetTimer(idlePing) case <-readMessagesCh: resetTimer(idlePingShort) case <-wroteMessagesCh: