インターネットの発展に伴い、Web アプリケーションの使用がますます一般的になり、WebSocket プロトコルの人気が高まっています。一方で、Golang の急速な成長により、Golang は WebSocket でよく選ばれる言語になりました。この記事では、WebSocket プログラミングに Golang を使用する方法を紹介します。
WebSocket とは何ですか?
WebSocket プロトコルは、Web アプリケーションがサーバーと対話できるようにする双方向のリアルタイム通信プロトコルです。 HTTP プロトコルとは異なり、WebSocket プロトコルを使用すると、サーバーとクライアントがいつでもメッセージを送受信できるため、リアルタイム通信が可能になります。
一般に、Web アプリケーションは、オンライン チャット、リアルタイム ホットスポット、マルチプレイヤー ゲームなどのリアルタイム データ交換に WebSocket プロトコルを使用します。 WebSocket を使用すると、プログラマは少量のコードで効率的なリアルタイム通信を実現できます。
Golang を使用した WebSocket の実装
Golang は、組み込みの RPC および Socket サポートを提供するため、完璧な言語です。 Golang の net/http パッケージを使用すると、WebSocket サーバーを簡単に作成できます。
"log" "net/http" "github.com/gorilla/websocket")
ws, err := websocket.Upgrade(w, r, nil, 1024, 1024) if err != nil { log.Println(err) return } defer ws.Close() for { messageType, p, err := ws.ReadMessage() if err != nil { log.Println(err) break } log.Println(string(p)) err = ws.WriteMessage(messageType, []byte("Server: got your message")) if err != nil { log.Println(err) break } }}このハンドラーでは、まず HTTP リクエストを WebSocket 接続にアップグレードします。次に、接続ごとにループしてクライアントから送信されたメッセージを読み取り、コンソールにメッセージを出力します。最後に、メッセージを再度クライアントに書き戻して、メッセージを正常に受信したことをクライアントに知らせます。
ReadBufferSize: 1024, WriteBufferSize: 1024,}http.HandleFunc("/ws", func(w http.ResponseWriter, r *http.Request) {
// Upgrade the HTTP server connection to a web socket connection ws, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Println(err) return } // ... WebSocket connection logic ...} )
log.Println("Starting server on :8080") http.HandleFunc("/ws", websocketHandler) err := http.ListenAndServe(":8080", nil) log.Fatal(err)}これで、サーバーを起動してクライアントに接続できます。新しいターミナル ウィンドウを開き、curl コマンドを使用して WebSocket 経由でサーバーにテキストを送信します。 curl -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: localhost:8080" - H "Origin: http://localhost:8080" http://localhost:8080/ws -vさらに、Chrome プラグイン Simple WebSocket クライアントなどのオンライン ツールを使用してテストできます。 概要WebSocket は、リアルタイム通信に最適な選択肢です。 Golang が提供する組み込みの RPC およびソケット サポートを使用すると、WebSocket サーバーを簡単に作成できます。この記事では、Golang を使用して WebSocket を作成する基本的な手順について説明します。 Golang で WebSocket の基本をマスターしたので、独自のリアルタイム アプリケーションの構築を開始できます。
以上がGolangでWebSocketを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。