Todos los redis
los comandos del módulo tienen una devolución de llamada opcional como último argumento.
Así que haciendo algo como
client.publish('channel', 'message', function(err) {
if (err) throw err;
});
debería funcionar como se esperaba.