Socket.io: لا يغلق Socket.io pm2 عند الإغلاق مآخذ التوصيل

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

تتبع هذه المشكلة https://github.com/Unitech/pm2/issues/2508
تكمن المشكلة في أنه إذا قمت بإعادة تشغيل خادم socket.io أو إعادة تحميله عبر pm2 ، فلا يزال لدي العديد من المقابس على الإنترنت (بقدر ما فهمت) ، ونتيجة لذلك لدي تحميل وحدة المعالجة المركزية وارتفاع الذاكرة.

أيضًا كنذير لهذه المشكلة ، بغض النظر عن الوضع (شوكة أو مجموعة) يعمل خادمي ، فإن عدد مآخذي النشطة يتزايد (بدون قفزات حادة ، على سبيل المثال: 4000 ، 3995 ، 4010 ، 4005 ، 4020 ، ولكن لا يزال باستمرار) مع مرور الوقت ، ما الذي يحتاج إلى المزيد والمزيد من الذاكرة ونتيجة لذلك لدي تسرب للذاكرة؟

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

أنا شخص جميل أتمنى لك الليل والنهار

ال 4 كومينتر

حول عدد الاتصالات التي تتزايد باستمرار - إنها ليست مشكلة pm2 ، لقد رفضت nginx ، pm2 ، الكتلة وتركت مثيلًا واحدًا فقط أقوم بتشغيله على node.js الخالص باستخدام الأمر "node server.js" بدون أي معلمات. إذن ، من سيقرأ هذا في المستقبل ، فإن مشكلة الاتصال الخاصة بي ليست بسبب PM2.

تكمن المشكلة في عملاء الأجهزة المحمولة ، فهم يتجاهلون إعدادات الاتصال / إعادة الاتصال socket.io ، وعلى الرغم من أن الخادم كان غير متصل بالإنترنت لمدة 3 أيام ، إلا أنهم ما زالوا يقومون بإجراء اختبار pingin ، ثم يتصل الخادم بالإنترنت ، ويقومون بإعادة الاتصال. لذلك إذا كان المنفذ عامًا مرة واحدة ، ولا يزال هناك عملاء مفتوحون مع هذا المنفذ ، فسيكون لديك وضعي.

أنا شخص جميل أتمنى لك الليل والنهار

Nerfair أي عميل socket.io يستخدمه عملاء الجوال؟ socket.io-client ؟ أو تلك الأصلية (Android / iOS)؟

darrachequesne لست متأكدًا من أنني فهمت بشكل صحيح لكنها قياسية

<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
<script>
    var socket = io('http://localhost');
    socket.on('message', function (data) {
        console.log(data);
    });
</script>

وعلى جانب الخادم هو كذلك

sio = require('socket.io')
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات