Socket.io: هل "ping" و / أو "pong" أحداث محجوزة؟

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

لدي بعض الكود الأساسي (انظر أدناه) الذي يعمل كما هو متوقع عندما يتم تسمية الأحداث باسم ding و dong ولكن يتصرف بشكل غريب جدًا عندما يتم تسمية الأحداث ping and pong

عندما يتم تسمية الأحداث بينج وبونج

  • سيسجّل رمز الخادم رسائل "الاتصال" و "قطع الاتصال" ، ولكن ليس رسائل "بينغ" و "بونغ"
  • سيقوم رمز العميل بتسجيل رسالة "ping" وبعد انتظار طويل (أكثر من 10 ثوانٍ) سيسجل رسالة "pong" ، وإذا واصلت الانتظار ، فسأتلقى المزيد من رسائل "pong" كل 10 ثوانٍ أو أكثر.

كود الخادم

const fs             = require('fs');
const http           = require('http');
const path           = require('path');
const SocketIOServer = require('socket.io');

const app = new http.Server();
app.on('request', (req, res) => {

  const index = path.join(__dirname, 'public', 'index.html')

  fs.readFile(index, function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
});
app.listen(3000, 'localhost');

const io = new SocketIOServer(app);


// could also use "connection"
io.on('connect', function (socket) {
  console.log(`${socket.id} "connect"`);

  socket.on('ping', (data) => {
    console.log('Receive "ping"');

    io.emit('pong', {});  
    console.log('Send "pong"');  
  });

  socket.on('disconnect', () => {
    console.log(`${socket.id} "disconnect"`);    
  });
});

رمز العميل

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Socket.IO Events</title>
  </head>
  <body>
    <h1>Socket.IO Events</h1>

    <script src="/socket.io/socket.io.js"></script>
    <script>
      const socket = io();

      socket.on('pong', (data) => {
        console.log('Receive "pong"');
      });

      socket.emit('ping', {});
      console.log('Send "ping"');

    </script>
  </body>
</html>

ليس لدي أي فكرة عما يجري هنا. قد يكون هذا أيضًا مرتبطًا بـ # 1951

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

فقط محاصر في حدث "ping" لبضع ساعات.
أعتقد أن الوثيقة الرسمية قد تتزامن مع المستند على GitHub ؟
أو ربما يمكن تدوين أسماء الأحداث المحجوزة في المستند حتى لا يتم حبس الأشخاص مرة أخرى؟

ال 4 كومينتر

أرى سلوكًا غريبًا أثناء استخدام أسماء أحداث "ping" / "pong" - يبدو أن هناك رمزًا في socket.io يفعل شيئًا ما مع ping and pong ، ليس لدي وقت لمزيد من التحقيق - تم تغيير الاسم إلى " بالتنقيط و "القطرة"

يتم استخدام الأحداث ping و pong في socket.io-client.
يرجى الاطلاع على https://github.com/socketio/socket.io-client#events

فقط محاصر في حدث "ping" لبضع ساعات.
أعتقد أن الوثيقة الرسمية قد تتزامن مع المستند على GitHub ؟
أو ربما يمكن تدوين أسماء الأحداث المحجوزة في المستند حتى لا يتم حبس الأشخاص مرة أخرى؟

يا له من مضيعة للوقت. كان لدينا جميعًا (بما في ذلك فريق socket.io) نفس الفكرة السيئة. إذن ما هو ELSE محجوز؟

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