ホームページ  >  記事  >  バックエンド開発  >  Golang ウェブソケット

Golang ウェブソケット

WBOY
WBOY転載
2024-02-05 21:18:031030ブラウズ

Golang websocket

#質問の内容

次のコード スニペットの意味を説明できる人はいますか?

リーリー ###完全版:### リーリー

2 人目の参加者がチャット チャネルに参加したときに、なぜこのチャット機能が実行できるのかよくわかりません。

正解


HTTPハンドラーがWebソケットを作成し、相手の接続を待ち始めたようです。これは、HTTP リクエストを処理するときにハンドラーが

match
を呼び出しますが、

partner チャネルが読み取り可能でも書き込み可能でもないため、select でブロックされるためです。それをリッスンしたり、送信したりするゴルーチンはありません。 2 番目のリクエストが来ると、別の goroutine から match

が再度呼び出されます。これで 2 つの goroutine が存在し、

match が可能になります。 goroutine の 1 つは partner チャネルに送信でき、もう 1 つの goroutine はそれを受信します。転送の対象はリーダーとライターであり、2 つのパートナー間の通信に使用されます。

以上がGolang ウェブソケットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。