我在Node.js中使用Socket.IO。混淆JavaScript對象行爲
我有一個對象socket
,看起來像這樣:
SocketNamespace
$events: Object
...
socket: Socket
所以後來如果我看Socket
(即socket.socket
)
Socket
$events: Object
...
sessionid: "1549988601982716407"
再次,工作正常。
但如果我只是想回到sessionid
,所以我用socket.socket.sessionid
我得到...
undefined
如果我對socket.socket
我得到object
做一個typeof
,但socket.socket.sessionid
,我只是得到undefined
。
編輯:這裏是我的代碼:
瀏覽器:
$(function() {
$.getScript('http://localhost:8080/socket.io/socket.io.js', function() {
var socket = io.connect('http://localhost:8080');
console.log(socket.socket.sessionid);
});
});
應用:
var io = require('socket.io').listen(8080);
io.sockets.on('connection', function (socket) {
});
編輯2:更多的數據:
而不是一個日誌,我已經取代了這個;
console.log(typeof(socket));
console.log(typeof(socket.socket));
console.log(typeof(socket.socket.sessionid));
返回:
object
object
undefined
預計:
object
object
string
編輯3:*截圖
Screenshot of console http://f.cl.ly/items/1p423t0q3F3G1D2Z470W/sockets.png
編輯4
此,奇怪的是,工作。
var x;
for (x in socket.socket)
{
if (x == 'sessionid') {
console.log(socket.socket[x]);
}
}
***請不要引用僞代碼。您的問題可能與您使用的實際代碼*有關。如果您沒有引用實際的代碼,我們無法幫助您。 – 2012-01-12 22:51:45
我已經添加了代碼 - 但它只是標準的東西,沒有看到需要用代碼填充頁面。 – 2012-01-12 23:20:47
因此,在原始示例中,您引用'sessionid',但在您編輯的代碼中引用'session_id'。這可能是問題嗎?它應該是'sessionid'嗎? – Treffynnon 2012-01-12 23:21:20