fix server panic trying to send on stream as client disconnects #1111 (#1115)

diff --git a/transport/handler_server.go b/transport/handler_server.go
index 24f306b..31b0570 100644
--- a/transport/handler_server.go
+++ b/transport/handler_server.go
@@ -179,11 +179,18 @@
 
 // do runs fn in the ServeHTTP goroutine.
 func (ht *serverHandlerTransport) do(fn func()) error {
+	// Avoid a panic writing to closed channel. Imperfect but maybe good enough.
 	select {
-	case ht.writes <- fn:
-		return nil
 	case <-ht.closedCh:
 		return ErrConnClosing
+	default:
+		select {
+		case ht.writes <- fn:
+			return nil
+		case <-ht.closedCh:
+			return ErrConnClosing
+		}
+
 	}
 }