用 golang 去實現類似 swoole 的 websocket 服務 ?

漫天風雨下西樓發表於2020-05-11
  • 專案靈感來源 swoole 。
  • 感謝 github.com/gorilla/websocket 為本專案提供 webSocket 服務所需的基礎。

怎麼使用?

  • 我使用 go mod 作為包管理工具
  • go.mod 中 加入 github.com/whyiyhw/gws 或者 go get github.com/whyiyhw/gws
    // default 127.0.0.1:9501/ws
    s := new(gws.Server)

    // 接收訊息事件
    s.OnMessage = func(c *gws.Conn, fd int, msg string, err error) {
        fmt.Printf("client %d said %s \n", fd, message)
    }

    // 連線成功事件
    s.OnOpen = func(c *gws.Conn, fd int) {
        fmt.Printf("client %d online \n", fd)
    }

    // 連線關閉事件
    s.OnClose = func(c *gws.Conn, fd int) {
        fmt.Printf("client %d had offline \n", fd)
    }

    // 啟動服務
    if err := s.ListenAndServe(); err != nil {
        panic(err)
    }
  • 再使用 瀏覽器工具欄 連線 ws://127.0.0.1:9501/ws 就可以愉快的玩耍了~

其它 特性請點選檢視 examples 自行測試~

  • 通用的訊息推送架構設計圖
    websocket

歡迎各位大佬來玩? 直通車

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章