Go言語でWebソケットフレームワークを利用する方法

Gorilla WebSocketやMelodyなど、一般的に使用されるフレームワークを活用して、WebSocketアプリケーションをGo言語で作成できます。以下は、Gorilla WebSocketフレームワークを使用した簡単な例です。

  1. 最初に、Golangがインストールされており、作業ディレクトリが設定されていることを確認します。
  2. Gorilla WebSocket パッケージは go get コマンドで取得できます。
go get github.com/gorilla/websocket
  1. お使いのコードに Gorilla WebSocket パッケージをインポートします。
import (
    "github.com/gorilla/websocket"
)
  1. WebSocketハンドラーを作成:
// 定义一个全局的upgrader变量
var upgrader = websocket.Upgrader{
    ReadBufferSize:  1024,
    WriteBufferSize: 1024,
}

func websocketHandler(w http.ResponseWriter, r *http.Request) {
    // Upgrade HTTP连接为WebSocket连接
    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        log.Println(err)
        return
    }
    
    // 在连接关闭时执行的清理操作
    defer conn.Close()
    
    // 处理WebSocket消息
    for {
        messageType, p, err := conn.ReadMessage()
        if err != nil {
            log.Println(err)
            return
        }
        
        // 在这里处理接收到的消息
        
        // 回复消息
        err = conn.WriteMessage(messageType, p)
        if err != nil {
            log.Println(err)
            return
        }
    }
}
  1. HTTPサーバーを作成し、WebSocketハンドラをルーティングに登録する:
func main() {
    http.HandleFunc("/ws", websocketHandler)
    http.ListenAndServe(":8080", nil)
}
  1. ネイティブレベルで日本語に言い換えてください。1つの選択肢だけでお願いします。http://localhost:8080/ws

以上は簡単な例だが、あなたのニーズに合わせて自由に拡張およびカスタマイズすることができる。Gorilla WebSocketフレームワークには豊富な機能とオプションが用意されている。詳細は公式ドキュメント (https://pkg.go.dev/github.com/gorilla/websocket) を参照のこと。

bannerAds