If you have used a namespace I found that the following works :
//Defining the namespace <br>
var nsp = io.of('/my-namespace');
//targeting the message to socket id <br>
nsp.to(socket id of the intended recipient).emit('private message', 'hello');
I believe both @Curious and @MustafaDokumacı provided solutions that work well. The difference though is that with @MustafaDokumacı's solution the message is broadcasted to a room and not only to a particular client.
The difference is prominent when an acknowledgement is requested.
io.sockets.connected[socketid].emit('message', 'for your eyes only', function(data) {...});
works as expected, while
io.to(socketid).emit('message', 'for your eyes only', function(data) {...});
fails with
Error: Callbacks are not supported when broadcasting