req.socket
If 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.socket
may 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.
// ...
}