Socket.io: لا تأخذ io.origins () مصفوفة من السلاسل النصية

تم إنشاؤها على ٣ مارس ٢٠١٨  ·  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')

سلوك متوقع

اقامة

  • نظام التشغيل: 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']); .

بالنظر إلى هذا الالتزام ، يبدو أنه تم تغيير المستندات لتشمل هذا المثال ، ومع ذلك ما زال يحدث لي؟

كنت أستخدم [https://subdomain.domain.ee:*] كعنوان URL ، والذي لا يعمل ، ولا مع http:// (على الرغم من أنه في حالتي يجب أن يكون متاحًا فقط عبر https:// أي حال). بمجرد إزالة البروتوكول ، بدأ العمل.

اعتقدت أنني سأبلغ عن هذا هنا فقط في حالة. هل من المحتمل أن أفتقد شيئًا؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات