ドキュメントには、 io.origins()
は文字列/起点の配列を取得すると記載されています(例https://socket.io/docs/server-api/#server-origins-valueを参照)。いいえ。 配列の代わりに文字列を提供する場合にのみ機能します。
設定
io.origins(['http://localhost:3000'])
その後、 localhost:3000
からの接続は機能しません。
io.origins('http://localhost:3000')
を設定する場合にのみ機能します
プロトコルを含めるべきではないと思います:
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://
経由でのみアクセスできるはずです)。 プロトコルを削除すると、動作を開始しました。
念のため、ここで報告したいと思いました。 私はおそらく何かを逃していましたか?
最も参考になるコメント
プロトコルを含めるべきではないと思います: