在 socket.io 服務器中,可以向socket.data物件添加一個屬性。我如何在客戶端 ( socket.io-client)訪問這樣的屬性?。
// 服務器代碼
io.on('connection', socket => {
socket.data.customId = getCustomId();
io.emit('connected', {success: 'true'})
})
// 客戶端代碼
socket = io('http://localhost:5000');
socket.on('connected', data => {
console.log('SOCKET_DATA:', socket)
console.log('SOCKET_CUSTOM-ID:', socket.data.customId); // produces 'undefined'
})
我想customId從客戶端訪問我在服務器上添加的。該data屬性甚至不存在于socket客戶端控制臺上顯示的物件上。
任何幫助,將不勝感激
uj5u.com熱心網友回復:
如果您想以某種方式訪問??它,則必須創建一些發送到服務器的請求。只有服務器存盤該資訊。您可以在客戶端執行以下操作:
socket.emit("getCustomId", (id) => {
console.log("SOCKET_CUSTOM-ID:", id);
});
然后服務器可以使用自定義 id 進行偵聽和回應:
socket.on("getCustomId", (callback) => {
callback(socket.data.customId);
});
callback服務器端的那個引數連接回socket.emit("getCustomId");呼叫中宣告的未命名的 ES-6 函式,你可以在這個關于回呼的問題上看到這里socket.io
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/374077.html
