1 // Copyright 2015 The Gorilla WebSocket Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
17 "github.com/gorilla/websocket"
20 var addr = flag.String("addr", "localhost:8080", "http service address")
26 interrupt := make(chan os.Signal, 1)
27 signal.Notify(interrupt, os.Interrupt)
29 u := url.URL{Scheme: "ws", Host: *addr, Path: "/echo"}
30 log.Printf("connecting to %s", u.String())
32 c, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
34 log.Fatal("dial:", err)
38 done := make(chan struct{})
43 _, message, err := c.ReadMessage()
45 log.Println("read:", err)
48 log.Printf("recv: %s", message)
52 ticker := time.NewTicker(time.Second)
60 err := c.WriteMessage(websocket.TextMessage, []byte(t.String()))
62 log.Println("write:", err)
66 log.Println("interrupt")
68 // Cleanly close the connection by sending a close message and then
69 // waiting (with timeout) for the server to close the connection.
70 err := c.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, ""))
72 log.Println("write close:", err)
77 case <-time.After(time.Second):