我在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