ホームページ >バックエンド開発 >Golang >x/net ライブラリ trowing 403 を使用した Websocket サーバーの実装

x/net ライブラリ trowing 403 を使用した Websocket サーバーの実装

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB転載
2024-02-13 17:03:081017ブラウズ

使用 x/net 库 trowing 403 的 Websocket 服务器实现

php editor Banana では、x/net ライブラリを使用して 403 エラーをスローする Websocket サーバーを実装する方法を紹介します。 Websocket は、クライアントとサーバーの間に永続的な接続を確立する通信プロトコルであり、403 エラーはサーバーがクライアントの要求を拒否したことを意味します。 x/net ライブラリを使用すると、Websocket サーバーを簡単に作成し、必要に応じて 403 エラーをスローしてリクエストを拒否できます。この方法はシンプルかつ効果的であり、リクエストを承認したりアクセスを制限したりする必要があるシナリオに適しています。

質問内容

標準ライブラリ x/net/websocket を使用して WebSocket サーバーを実装しようとしています。

これまでの私の試みは次のとおりです:

リーリー

複数の ws クライアントを使用して ws://localhost:3000/ws に接続しようとすると、常に同じエラーが発生します: 403-Forbidden。 公式ドキュメントの例も試してみましたが、それでもうまくいきました。明らかな何かを見逃しているでしょうか?デフォルトのポートブロックなどのようなものですか?

###よろしくお願いします。

編集: 問題を再現するには、別のポートを使用する必要がある場合があります。この例で

3000 を使用すると、プログラムが利用できない場合には、プログラムの実行が中断されるだけです。

編集 2: websocat などのクライアントを使用し、

websocat 'ws://localhost:3000/ws' を実行してサーバーへの接続を試行できます

回避策

私は諦めましたが、良い洞察が得られました。 あなたが私と同じで、Anthony GG の

「Go で Websocket サーバーを最初から作成するチュートリアル」 に従っている場合は、やめてください。ビデオは時代遅れであり、ビデオの作成方法については優れた直感を提供しますが、Gorilla の WebSocket ライブラリを使用して学ぶのが最善です (恥ずかしくないです)。 リーリー

また、パス パラメーターを使用するために

gorilla/mux も使用しました (なぜ http ハンドラーが使用できないのかはわかりません)。 http.Handlemux.Router.HandleFunc に変更したことに注目してください。 ユーザー @Cerise がコメントで指摘したように、x/net/websocket パッケージは標準ライブラリには含まれていませんが、Origin ヘッダーを追加しただけでは元の問題は解決されませんでした。 。

これにより、私のような他の人が Go を学習する際に遭遇するトラブルが少しでも救われることを願っています。

以上がx/net ライブラリ trowing 403 を使用した Websocket サーバーの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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