Socket.io: io.origins()は文字列の配列を取りません

作成日 2018年03月03日  ·  4コメント  ·  ソース: socketio/socket.io

あなたはしたい:

  • [x]バグを報告する
  • []機能をリクエストする

現在の動作

ドキュメントには、 io.origins()は文字列/起点の配列を取得すると記載されています(例https://socket.io/docs/server-api/#server-origins-valueを参照)。いいえ。 配列の代わりに文字列を提供する場合にのみ機能します。

再現手順(現在の動作がバグの場合)

設定

io.origins(['http://localhost:3000'])

その後、 localhost:3000からの接続は機能しません。

io.origins('http://localhost:3000')を設定する場合にのみ機能します

期待される動作

設定

  • OS:macOS High Sierra 10.13.3
  • ブラウザ:Chrome 64.0.3282.186
  • socket.ioバージョン:2.0.4

最も参考になるコメント

プロトコルを含めるべきではないと思います:

io.origins(['localhost:3000', 'localhost:3001']);
// or
io.origins('localhost:3000');

全てのコメント4件

プロトコルを含めるべきではないと思います:

io.origins(['localhost:3000', 'localhost:3001']);
// or
io.origins('localhost:3000');

文字列として提供された場合はプロトコルで機能しますが、配列で提供された場合は機能しません😄

しかし、説明してくれてありがとう!

indexOfで実装されていると思うので、ファンキーな動作になります。

ドキュメントにメモを追加します。

同じ問題が発生しました。たとえば、URLにプロトコルが含まれる配列は機能しませんが、 io.origins([https://subdomain.domain.ee:*]) io.origins([subdomain.domain.ee:*])機能します。

ドキュメントの例には、配列の例にhttps://が含まれていますが、 io.origins(['https://foo.example.com:443']);です。

このコミットを見ると、ドキュメントがその例を含むように変更されたようですが、それでも私には起こりましたか?

私はURLとして[https://subdomain.domain.ee:*]を使用していましたが、これは機能しませんでした。また、 http://でも機能しませんでした(私の場合は、とにかくhttps://経由でのみアクセスできるはずです)。 プロトコルを削除すると、動作を開始しました。

念のため、ここで報告したいと思いました。 私はおそらく何かを逃していましたか?

このページは役に立ちましたか?
0 / 5 - 0 評価