import ( "io" "golang.org/x/net/websocket" ) func EchoHandler(ws *websocket.Conn) { io.Copy(ws, ws) } *websocket.Connはio.ReadWriteCloserが実装されており、クライアントから来たWebSocketのメッセージは*websocket.Conn.Readで読むことができ、また*websocket.Conn.Writeで送ることができます。なので、io.Copyで逐次読みだして同じ内容をまた書き込むことで簡単にecho serverを書くことができます。 これをサーバに組み込むのも簡単です。 import ( "net/http" ) func main() { http.Handle("/echo", websocket.Handler(EchoHandler))