Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search

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

    Socket.IO/Engine.IO
    0
    3
    777
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Thuc Nguyen tan
      Thuc Nguyen tan last edited by Thuc Nguyen tan

      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

      1 Reply Last reply Reply Quote 0
      • Q
        qkhuyit last edited by

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

        1 Reply Last reply Reply Quote 0
        • Phuocanh Ta
          Phuocanh Ta last edited by

          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.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post