Check if the user received message with socket io


I have simple question , think I sent a message with socket.emit in server to client , so how can I check if the user really got the message , does socket io or node have any built in system

, I know that I can use ping user with socket.emit and after that user send back a response that got server message , but I need to know does socket io have such bulit in system ?


Problem courtesy of: Ata


Yes, you can do that by passing a function as the last parameter to .emit.

Example from the "Sending and getting data (acknowledgements)" section of


var io = require('').listen(80);

io.sockets.on('connection', function (socket) {
  socket.on('ferret', function (name, fn) {


  var socket = io.connect();
  socket.on('connect', function () {
    socket.emit('ferret', 'tobi', function (data) {
      console.log(data); // data will be 'woot'
Solution courtesy of: go-oleg


There is currently no discussion for this recipe.

This recipe can be found in it's original form on Stack Over Flow.