Socket.io-client: كيفية ضبط رؤوس الطلبات عند الاتصال بالخادم؟

تم إنشاؤها على ٩ يوليو ٢٠١٤  ·  13تعليقات  ·  مصدر: socketio/socket.io-client

كيفية تعيين رؤوس طلب مخصصة عند الاتصال باستخدام عميل socket.io

Feature request

التعليق الأكثر فائدة

muhammadnasr مرر الخيارات في الوسيطة الثانية ، أولها عنوان url:

const socket = io("/your-url-here", {
  transportOptions: {
    polling: {
      extraHeaders: {
        'x-clientid': 'abc'
      }
    }
  }
});

ال 13 كومينتر

أنا أيضا أحتاج ذلك ... هل وجدت أي حل؟

أنا مهتم أيضًا بهذا.

لقد رأيت كيفية القيام بذلك على Java socket.io-client ولكن ليس على JS واحد

لن تعمل مع جميع وسائل النقل.
إذا كنت تستخدم XHR / Ajax Polling ، فمن الممكن ، ولكن ليس مقابل WebSockets على HTML5.

http://stackoverflow.com/questions/4361173/http-headers-in-websockets-client-apic

أنا أبحث عن حل ل.

ما الذي تحاول تحقيقه؟ لا يمكنك استخدام معلمات URL؟

أحاول كتابة اختبار للتحقق مما إذا كان يمكن التنصت على مآخذ الويب قبل وبعد البرمجيات الوسيطة للمصادقة.

من أجل المصادقة بنجاح ، أحتاج إلى إرسال جلسة ملف تعريف الارتباط مع طلب ترقية http الأولي. إنه يعمل في المتصفح ، أريد فقط أن يعمل في اختبارات العقدة الخاصة بي أيضًا.

هل هناك أي تقدم في هذا؟ أو أي تلميح حول كيفية الحصول على / تعيين جلسة ملف تعريف الارتباط / جلسة تعريف الارتباط داخل socket.io؟

أنا فعلا جعلته يعمل. تتوفر تفاصيل عملية تأكيد اتصال http الأولية على socket.request . هناك ، ستجد الجلسة. على سبيل المثال ، باستخدام البرمجيات الوسيطة socket.io:

io.use(function(socket, next){
    if (!socket.request.session){
      console.log('no session in socket')
      socket.disconnect();
    }
    next();
  });

منذ الإصدار 2.0.0 ، يمكنك الآن تعيين رؤوس الطلبات باستخدام الخيار extraHeaders :

const socket = io({
  transportOptions: {
    polling: {
      extraHeaders: {
        'x-clientid': 'abc'
      }
    }
  }
});

كيف يمكنني إضافة عنوان url لهذا المثال
مقبس const = io ({
خيارات النقل: {
الاقتراع: {
رؤوس إضافية: {
'x-clientid': 'abc'
}
}
}
}) ؛

muhammadnasr مرر الخيارات في الوسيطة الثانية ، أولها عنوان url:

const socket = io("/your-url-here", {
  transportOptions: {
    polling: {
      extraHeaders: {
        'x-clientid': 'abc'
      }
    }
  }
});

هذا عظيم.

هل لديك نموذج تعليمة برمجية لتعيين الرؤوس لنظامي التشغيل iOS و Android SDK؟

شكرا جزيلا.

هل يمكن تعيين الرؤوس ديناميكيًا؟

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