req.socket
如果目前的請求 (req
) 源自已連線的 Socket.IO 用戶端,則 req.socket
指的是原始的 Socket.IO socket 實例。
req.socket;
警告
req.socket
可能會在 Sails 的未來版本中被棄用。您應該改用sails.sockets.*
方法。
如果目前的請求 (req
) 並非源自 Socket.IO 用戶端,則 req.socket
的意義就不同。在最常見的情況(HTTP 請求)下,req.socket
存在,但它指的是底層的 TCP socket。在使用 req.socket
之前,您應該檢查 req.isSocket
標記,以確保請求是透過已連線的 Socket.IO 用戶端抵達。
req.socket.id
是代表目前 socket 的唯一識別碼。這是 Socket.IO 伺服器在用戶端首次連線時產生的,並且在 socket 斷線之前都是有效的唯一識別碼 (例如,如果用戶端是網頁瀏覽器,則 req.socket.id
在使用者關閉瀏覽器分頁之前都是有效的)。
Sails 也提供直接、低階的存取權,可存取 Socket.IO Socket
的所有其他方法和屬性,包括 req.socket
及其方法 req.socket.join
、req.socket.leave
、req.socket.broadcast
等。請查看相關的 Socket.IO 文件 以取得更多資訊。
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.
// ...
}
req
)
res
)