問題タブ [gorilla]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - ゴリラマルチプレクササブルーターを使用しているときに完全なリクエストパスを取得するにはどうすればよいですか?
ゴリラ ツールキットのマルチプレクサを使用してリクエストをルーティングしています。パス プレフィックスを使用するサブルートがいくつかあります。問題は、完全なリクエスト パスを取得したいのですが、req.URL.path にはパス プレフィックスの後の URL の一部しかないので、どうすればよいでしょうか。パスプレフィックスを含むパスを取得する方法はありますか? 前もって感謝します
go - Gorilla Mux HandleFunc で {name:value} ペアを使用するには?
関数ハンドラを備えたマルチプレクサ ルータを使用しています
テスト ハンドラは次のように定義されます。
でページを呼び出します
しかし、404 が表示されます。また、3 番目の値が機能しませんでした。正しいURLは?そして、このように名前と値のペアの変数を取得できますか?
ios - Websocket サーバーが常に [websocket: control frame length > 125] を報告するのはなぜですか?
iOS アプリケーションはSocketRocket、websocket サーバーとの接続を確立するために使用します。しかし、接続を確立して最初のメッセージを送信した後、サーバーは ( を使用してgorilla/websocket) フレームを解析しようとしましたが、失敗しました:
NextReader() を呼び出すと、エラーが報告されます。
奇妙なことに、私はSocketRocketのsend()メソッドを使用してデータを送信しているため、制御フレーム (ping/pong) が発生することはありません。
誰もこの問題を見たことがありますか?ヘルプ!
go - go lang を使用して既存の websocket サーバーに接続する必要があります
私のローカルホストで実行されているwebsocketがありますws://localhost:8080/ws
Websocket クライアントを作成してこのサーバーに接続できる go lang コードが必要です。
私の Google-Fu スキルでは、これを行う簡単な方法を教えてくれませんでした。
ありがとうございました。
json - Gorilla Mux ですべての変数を一覧表示するには?
Golang で funcHandler を作成し、Gorilla Mux を使用すると、Mux.Vars を呼び出すことで特定の入力変数にアクセスできることがわかりました。ただし、データが JSON 形式で保存されている場合にそれがどのように機能するかはわかりません。その一部は、Mux.Vars() がどのように機能するかがわからないためです。したがって、 funcHandler を入力したときに Mux.Vars() によって格納されたすべての変数を一覧表示する方法と、URL に格納された JSON を解析する方法 (つまり、/data?name="bill"&value="red") を知りたいです。 、名前と値のキーの値を見つけたい場所)。
json - Go言語でリクエストボディがnullです(Postman)
Postman を使用して、localhost に json 文字列を投稿しています。Postman で渡す json 文字列は次のとおりです。
ただし、テスト関数でデータを取得すると、次のreq.Bodyような結果が得られます。&{%!s(*io.LimitedReader=&{0xc0820142a0 0}) <nil> %!s(*bufio.Reader=<nil>) %!s(bool=false) %!s(bool=true) {%!s(int32=0) %!s(uint32=0)} %!s(bool=true) %!s(bool=false) %!s(bool=false)}
リクエストボディで name:foo を取得したい。
同じための私のgo langコードは次のとおりです。
req.Body 属性に空白のデータが表示される理由を誰か教えてもらえますか? どうもありがとう。
go - 更新: js websockets でオリジン ヘッダーを送信する
Go で gorilla-websocket をいじっていて、基本的な echo の例を実装したので、サーバーのデプロイ後にエラーをログに記録しました。
オリジンが見つかりません Websocket バージョン != 13
オリジンをチェックする関数が常にtrueを返すようにすることで、これを回避する方法を見つけました
しかし、それは正しくありません。したがって、私はその問題を解決する方法を探しています。
更新:問題をもう一度見てみると、実際にはオリジンヘッダーをクライアント実装に追加しようとしているようです。これは、javascript websocket 実装です。
@benjic Imは、同じサーバーでホストされていないが、Chromeを介してローカルで実行されているjavascript html5アプリケーションを介してwebsocketに接続しています
では、どうすればよいのでしょうか。
go - Goメソッド内でURLを呼び出す/開く方法は?
GoでGorilla Muxルーターをセットアップしています。そのルーター内にルートを設定し、それらのルートに関連付けられた関数ハンドラーを設定しました。ブラウザ ウィンドウを開いて特定の URL を入力すると、ルータは完全に機能します。しかし、私が直面している問題は、コマンド ラインで URL が入力された場合にどうするかということです。コマンドライン引数から URL を保存する方法は知っていますが、Go で URL 変数として保存された URL をルーターに転送する方法がわかりません。同様に、ブラウザ ウィンドウから入力するのではなく、コマンド ラインで URL を指定した場合、ルートの関数ハンドラを呼び出すにはどうすればよいでしょうか。
コード:
go - (Go) ws ループで常に変化する変数を比較する
メッセージを受信し、それに応じて処理するループに取り組んでいます。基本的には、キープアライブと認証を備えた websocket echo-er であり、キープアライブの部分でしばらく立ち往生しています。
概念は単純です。サーバーが起動すると、ティッカーを使用してゴルーチンを作成し、uint64 ポインターを初期化します。ティッカーがティックするたびに (2 秒ごと)、atomic.AddUint64(clockTicks, 1) でポインターをインクリメントします。 Websocket 接続ゴルーチンごとに、compare と atomic.LoadUint64(clockTicks) を使用してティックごとに変数をチェックし、ping/pong メッセージを送信します。
編集:メッセージが受信されるまで、何かが for ループをブロックしているようです。結果:
このスニペットでは、 i := atomic.LoadUint64(clockTicks) & すべての if ブロックは i メッセージが送信されたときにのみ実行されます (msg に "Keep Going." が出力されます)。これは私が望むものではありません。反復のために、そして「続けてください」。& 「Quit nao ...」で clockTicks がインクリメントされるたびにトリガー
重要なコード部分は次のとおりです。Go と Gorilla の Websockets ライブラリを使用しています。
編集 2: IRC の誰かが、おそらく ws.ReadMessage がブロックしていると示唆しましたが、私にはよくわかりません (彼は、ws.ReadMessage 実装で使用されている ioutil.ReadAll がそれをブロックしていると言い、彼はそれについてかなり確信しています)。