File tree Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -38,7 +38,6 @@ func main() {
38
38
done := make (chan struct {})
39
39
40
40
go func () {
41
- defer c .Close ()
42
41
defer close (done )
43
42
for {
44
43
_ , message , err := c .ReadMessage ()
@@ -55,6 +54,8 @@ func main() {
55
54
56
55
for {
57
56
select {
57
+ case <- done :
58
+ return
58
59
case t := <- ticker .C :
59
60
err := c .WriteMessage (websocket .TextMessage , []byte (t .String ()))
60
61
if err != nil {
@@ -63,8 +64,9 @@ func main() {
63
64
}
64
65
case <- interrupt :
65
66
log .Println ("interrupt" )
66
- // To cleanly close a connection, a client should send a close
67
- // frame and wait for the server to close the connection.
67
+
68
+ // Cleanly close the connection by sending a close message and then
69
+ // waiting (with timeout) for the server to close the connection.
68
70
err := c .WriteMessage (websocket .CloseMessage , websocket .FormatCloseMessage (websocket .CloseNormalClosure , "" ))
69
71
if err != nil {
70
72
log .Println ("write close:" , err )
@@ -74,7 +76,6 @@ func main() {
74
76
case <- done :
75
77
case <- time .After (time .Second ):
76
78
}
77
- c .Close ()
78
79
return
79
80
}
80
81
}
You can’t perform that action at this time.
0 commit comments