req.socketIf the current request (req) originated from a connected Socket.IO client, req.socket refers to the raw Socket.IO socket instance.
req.socket;
Warning:
req.socketmay be deprecated in a future release of Sails. You should use thesails.sockets.*methods instead.
If the current request (req) did NOT originate from a Socket.IO client, req.socket does not have the same meaning.  In the most common scenario—HTTP requests—req.socket exists, but it refers instead to the underlying TCP socket. Before using req.socket, you should check the req.isSocket flag to ensure the request arrived via a connected Socket.IO client.
req.socket.id is a unique identifier representing the current socket.  This is generated by the Socket.IO server when a client first connects and is a valid unique identifier until the socket is disconnected (if the client is a web browser, for example, req.socket.id would be valid until the user closes their browser tab).
Sails also provides direct, low-level access to all other methods and properties of a Socket.IO Socket, including req.socket and its methods req.socket.join, req.socket.leave, req.socket.broadcast, etc.  Check out the relevant Socket.IO docs for more information.
if (req.isSocket) {
  // Low-level Socket.io methods and properties accessible on req.socket.
  // ...
}
else {
  // This is not a request from a Socket.io client, so req.socket
  // may or may not exist.  If this is an HTTP request, req.socket is actually
  // the underlying TCP socket.
  // ...
}