client 示例01
package main
import (
"flag"
"log"
"net/url"
"os"
"os/signal"
"time"
"github.com/gorilla/websocket"
)
var addr = flag.String("addr", "localhost:12345", "http service address")
func main() {
//Go 通过向一个通道发送 os.Signal 值来发送信号通知。 我们将创建一个通道来接收这些通知
interrupt := make(chan os.Signal, 1)
//监听指定信号
signal.Notify(interrupt, os.Interrupt)
u := url.URL{Scheme: "ws", Host: *addr, Path: "/ws"}
log.Printf("connecting to %s", u.String())
//创建一个拨号器,也可以用默认的 websocket.DefaultDialer
dialer := websocket.Dialer{}
//向服务器发送连接请求,websocket 统一使用 ws://
client, _, err := dialer.Dial(u.String(), nil)
if err != nil {
log.Fatal("dial:", err)
}
//离开作用域关闭连接,go 的常规操作
defer client.Close()
//创建一个零值通道
done := make(chan struct{})
go func() {
//函数结束之前关闭done通道