WebSocket 通信に Go と http.Transport を使用するにはどうすればよいですか?
WebSocket は、ネットワーク アプリケーションで双方向通信を提供するプロトコルです。これにより、クライアントが最初にリクエストを開始する必要がなく、サーバーがアクティブにメッセージをクライアントにプッシュできるようになります。 Go 言語では、http.Transport を使用して WebSocket 接続を作成および管理できます。
以下は、Go と http.Transport を使用した WebSocket 通信のサンプル コードです。
package main import ( "fmt" "log" "net/http" "golang.org/x/net/websocket" ) func EchoServer(ws *websocket.Conn) { for { var message string err := websocket.Message.Receive(ws, &message) if err != nil { log.Println("receive failed:", err) break } log.Println("received:", message) err = websocket.Message.Send(ws, message) if err != nil { log.Println("send failed:", err) break } log.Println("sent:", message) } } func main() { http.Handle("/", websocket.Handler(EchoServer)) err := http.ListenAndServe(":8080", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } }
上記のコードは、受信したメッセージをそのままクライアントに送り返す WebSocket サーバーを作成します。 main 関数では、http.Handle と websocket.Handler を使用して、EchoServer 関数をプロセッサとして登録します。次に、http.ListenAndServe を使用して、ポート 8080 でリッスンするサーバーを起動します。
クライアント側では、http.Transport を使用して WebSocket 接続を作成し、Send メソッドと Receive メソッドを通じてデータを送受信できます。以下は、単純なクライアント サンプル コードです。
package main import ( "fmt" "log" "net/http" "golang.org/x/net/websocket" ) func main() { origin := "http://localhost/" url := "ws://localhost:8080/" ws, err := websocket.Dial(url, "", origin) if err != nil { log.Fatal("dial failed:", err) } message := "Hello, WebSocket!" err = websocket.Message.Send(ws, message) if err != nil { log.Fatal("send failed:", err) } var response string err = websocket.Message.Receive(ws, &response) if err != nil { log.Fatal("receive failed:", err) } fmt.Println("received:", response) }
上記のコードでは、websocket.Dial を使用して WebSocket 接続を作成します。次に、websocket.Message.Send メソッドを使用してメッセージを送信し、websocket.Message.Receive を使用してサーバーから返されたメッセージを受信します。
上記のコード例では、Go と http.Transport を使用して WebSocket 接続を簡単に作成および管理できます。 WebSocket は、アプリケーションに効率的でリアルタイムの双方向通信機能を提供し、さまざまなアプリケーション シナリオに適しています。この記事がお役に立てば幸いです!
以上がWebSocket 通信に Go と http.Transport を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。