直接のサブパッケージは、公式のWebSocketの契約を使用して達成することができ、
golang.org/x/net/websocket
あなたは、オンライン上のディレクトリ$ GOPATH / SRC / golang.org / X /ネットには、このディレクトリのgithubののダウンロードネットライブラリにこのパッケージに行っていない場合
サーバーコード:
メインパッケージ インポート( " 時間" 、 " ログ" " ネット/ HTTP " " golang.org/x/net/websocket " ) 、メイン(){FUNC (http.HandleFunc " / " 、指数) http.Handle(" /用WebSocket "を、websocket.Handler(instantMessage)) log.Println(" サーバを起動" ) ERR: = http.ListenAndServe(" :1234 " 、ゼロ) log.Println(ERR) } FUNC指数(RES http.ResponseWriter、REQ *http.Request){ res.Write([] バイト(" ハローワールド" )) } instantMessage(FUNC W * websocket.Conn){ VARエラーエラー のために{ VAR応答文字列 であれば エラー= websocket.Message.Receive(W&返信!);誤差= ゼロ{ log.Println(" 接受消息失败" 、エラー) ブレーク } log.Println(" 客户端:" 、返信) MSG: = " 服务端:"+ +応答時間。.Now()文字列() log.Println(MSG) もし誤差= websocket.Message.Send(W MSG)。エラー!= nilを{ log.Println(" 发送消息失败" ) ブレイク } } }
クライアントコード:
< HTML > < ヘッド> < タイトル>学ぶ</ タイトル> </ ヘッド> < 身体> < スクリプトタイプ= "テキスト/ JavaScriptを" > VAR たちの靴下= ヌル; // するvar wsuri =「WSS://127.0.0.1 :8080 "; //は、ローカルアドレスはOHで変更することができる VAR wsuri = " WS:// localhostを:1234 /のWebSocket " ; // ローカルアドレスをOHに変更することができる window.onload = 関数(){ //をクライアントは、非常に簡単なハンドシェイクが成功した場合、それは、開く時]イベントWebScoketオブジェクトをトリガーするクライアント接続が正常に確立された教えてくれる、靴下用WebSocket機能を介してサーバーへの接続を確立するために、JSを見ることができます。4つのバインドされたクライアントイベントの合計。 console.log(" オンロードのスタート" ); 私達の靴下= 新しい新A用WebSocket(wsuri); // 接続を確立した後トリガー sock.onopen = 関数(){ にconsole.log(" 接続がトリガー接続を確立し、" + wsuri); } // トリガ近い接続 sock.onclose = 関数(E){ にconsole.log(「接続を閉じるは、閉じられた接続をトリガし(」 + e.code+ " )" ); } // トリガメッセージ受信後 sock.onmessage = 関数(E){ にconsole.log(" メッセージを受信したトリガメッセージを受信した後:" + e.dataを) のdocument.getElementByIdは(' 受信' ).innerHTML = e.data; } // エラー・トリガ・イベントの sock.onerror = 関数(E){ にconsole.logは、(" エラーが発生したときにトリガ" + wsuri) } }; //靴下は、本明細書でああ与えられて閉鎖される場合 、関数送信(){ VAR MSG = のdocument.getElementById(' メッセージ' ).Valueのを、 sock.send(MSG); }; </ スクリプト> < H1の>クライアント< / のH1 > < 形態> < P >送信:</ P > < TextAreaのID = "メッセージ" > Iタオ師範</ のTextArea > < P >受信:</ P > < TextAreaのID = "受信" > </ のTextArea > </ フォーム> < ボタンのonclick = "()を送るは、" >サーバにメッセージを送信</ ボタン> </ ボディ> </ HTML >