socket io callback dường như không chạy???



  • Hi, mình đọc https://socket.io/docs/#, thấy đoạn lệnh callback này dường như báo lỗi.

    Sending and getting data (acknowledgements)

    Sometimes, you might want to get a callback when the client confirmed the message reception.

    To do this, simply pass a function as the last parameter of .send or .emit. What’s more, when you use .emit, the acknowledgement is done by you, which means you can also pass data along:
    Server (app.js)

    var io = require('socket.io')(80);
    
    io.on('connection', function (socket) {
      socket.on('ferret', function (name, fn) {
        fn('woot');
      });
    });
    

    Client (index.html)

    <script>
      var socket = io(); // TIP: io() with no args does auto-discovery
      socket.on('connect', function () { // TIP: you can avoid listening on `connect` and listen on events directly too!
        socket.emit('ferret', 'tobi', function (data) {
          console.log(data); // data will be 'woot'
        });
      });
    </script>
    

    Có pro nào giải thích được không ?

    Lỗi thế này :
    TypeError: fn is not a function



  • 2 cái có có luồn nào thông đâu bảo nó chạy :v



  • Hình như là vì phía client nhận lắng nghe sự kiện 'connect' rồi mới phát sự kiện 'ferret', nhưng ở phía server của bạn lại không có đoạn nào phát ra sự kiện 'connect' cả, nên cái sự kiện 'ferret' cũng không được phát ra luôn. Theo mình nghĩ là hoặc là bạn không cần nghe sự kiện 'connect' ở client, hoặc là bạn cần phát sự kiện 'connect' từ server khi có nhận được sự kiện 'connection' để client biết là đã kết nối được với server.


Log in to reply