Socket.io: الحصول على HTTP Header 400 أثناء استخدام الاقتراع على socket.io

تم إنشاؤها على ٢٢ أبريل ٢٠١٥  ·  4تعليقات  ·  مصدر: socketio/socket.io

مرحبا،

أحصل على أكثر من 400 رأس HTTP أثناء استخدام الاقتراع على socket.io.
أنا أستخدم كتلة nodejs:
هنا مقتطف شفرة:

إذا (cluster.isMaster) {
// عمال الشوكة.
// numCPUs = 1 ؛
لـ (var i = 0 ؛ i <numCPUs-1 ؛ i ++) {
الكتلة. شوكة () ،
}
}
// كود العامل:
آخر{

var socket_io = يتطلب ('socket.io') (خادم) ؛
var redis_adapter = يتطلب ('socket.io-redis') ؛
socket_io.adapter (redis_adapter ({host: config.redis.ip، port: config.redis.port})) ؛

// باقي الكود
socket_io.on ("اتصال" ، الوظيفة (المقبس) {

}

أي مؤشر في هذا الصدد سيكون مفيدًا.

شكرا لك مقدما

Closed due to inactivity

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

مرحبا! لقد واجهت الكثير من المشاكل في إنشاء مجموعة باستخدام socket.io ، حيث لا يوجد الكثير من الأمثلة. لدي مثال عملي أستخدمه للتحكم في بعض raspberryPi في

https://github.com/jordanpappas/raspi-car/tree/master/server

أحتاج حقًا إلى تقديم مثال منفصل لإظهار كيفية تشغيل هذا ، ولكن في الوقت الحالي يمكنك التحقق من ملف الفهرس في الرابط. هناك بعض الأشياء التي يجب عليك التأكد من القيام بها من أجل الحصول على هذا العمل.

  1. استخدم redis (يبدو أنك تقوم بذلك بالفعل ، لذا قارن كيف قمت بتوصيل المحول بمثالي)
  2. استخدم مآخذ الويب فقط. هذا صحيح لكل من العملاء والخادم. هذه الأخطاء التي تتعرض لها تتعلق بأمور الاقتراع ، لذا لا تستخدمها. افعل هذا مثل هذا
var io = sio(server, { 'transports': ['websocket'] });

وعلى العميل:

var socket = io.connect('http://localhost:3000', { 'transports': ['websocket'] });

يجب أن يدفعك هذا إلى التحرك في الاتجاه الصحيح ، وسأعمل على الحصول على مثال بسيط معًا.

ال 4 كومينتر

مرحبا! لقد واجهت الكثير من المشاكل في إنشاء مجموعة باستخدام socket.io ، حيث لا يوجد الكثير من الأمثلة. لدي مثال عملي أستخدمه للتحكم في بعض raspberryPi في

https://github.com/jordanpappas/raspi-car/tree/master/server

أحتاج حقًا إلى تقديم مثال منفصل لإظهار كيفية تشغيل هذا ، ولكن في الوقت الحالي يمكنك التحقق من ملف الفهرس في الرابط. هناك بعض الأشياء التي يجب عليك التأكد من القيام بها من أجل الحصول على هذا العمل.

  1. استخدم redis (يبدو أنك تقوم بذلك بالفعل ، لذا قارن كيف قمت بتوصيل المحول بمثالي)
  2. استخدم مآخذ الويب فقط. هذا صحيح لكل من العملاء والخادم. هذه الأخطاء التي تتعرض لها تتعلق بأمور الاقتراع ، لذا لا تستخدمها. افعل هذا مثل هذا
var io = sio(server, { 'transports': ['websocket'] });

وعلى العميل:

var socket = io.connect('http://localhost:3000', { 'transports': ['websocket'] });

يجب أن يدفعك هذا إلى التحرك في الاتجاه الصحيح ، وسأعمل على الحصول على مثال بسيط معًا.

بالتأكيد شكرًا ، لقد قمت بحل المشكلة ، كنت أستخدم مكتبة الجلسات اللاصقة داخل عامل الكتلة وهذا خطأ لأن المكتبة نفسها تخلق العمال.

تم إغلاق هذه المشكلة تلقائيًا. يُرجى التحقق مما إذا كانت مشكلتك قد تم إصلاحها مع أحدث إصدار ، ثم إعادة فتحها إذا لزم الأمر (مع كمان يُعيد إظهار المشكلة إن أمكن).

إضاعة 4 ساعات في هذه المشكلة

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