ホームページ > バックエンド開発 > Golang > Go でサーバー側 WebSocket をノンブロッキングにリッスンする方法

Go でサーバー側 WebSocket をノンブロッキングにリッスンする方法

PHPz
リリース: 2024-02-08 20:45:09
転載
475 人が閲覧しました

如何在 Go 中非阻塞地监听服务器端 websocket

質問内容

https://pkg.go.dev/golang.org/x/net/websocketを使用してサーバーサイドを作成しますウェブソケット。それを介したすべての通信は json 形式で行われます。したがって、私のコードには次のものが含まれます:

リーリー

ただし、これはクライアントが接続を閉じるまでブロックされます。この WebSocket パッケージがコンテキストよりも古いものであることはわかっています (そして、より新しい WebSocket パッケージがあることも知っています)。それでも、ノンブロッキングな方法で受信フレームを待つ方法は本当にないのでしょうか?


正解


これは、クライアントが接続を閉じるまでブロックされます。

同時ブロック操作を処理する最も簡単な方法は、それらに goroutine を与えることです。ゴルーチンは、プロセスやスレッドとは異なり、本質的に「無料」です。

リーリー

以上がGo でサーバー側 WebSocket をノンブロッキングにリッスンする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート