2
這是奇特的。 Socket.io版〜1.3Socket.io握手地址值變化
io.sockets.on('connection', function (socket) {
console.log('Client connected from: ' + socket.handshake.address);
}
返回
客戶從連接::: 1
然而
io.sockets.on('connection', function (socket) {
console.log(socket.handshake);
console.log('Client connected from: ' + socket.handshake.address);
}
返回
{ headers:
{ host: 'localhost:8000',
connection: 'keep-alive',
origin: 'http://localhost:3000',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTM
L, like Gecko) Chrome/43.0.2357.130 Safari/537.36',
accept: '*/*',
dnt: '1',
referer: 'http://localhost:3000/dev.html',
'accept-encoding': 'gzip, deflate, sdch',
'accept-language': 'en-US;q=0.8,en;q=0.6,ko;q=0.4,de;q=0.2,ru;q=0.2,fr;q=0.2,ja;q=0.2,it;q=0.2',
cookie: 'io=yhyuAabou3GufhzNAAAA' },
time: 'Wed Jun 24 2015 22:50:19 GMT+0200 (Central European Daylight Time)',
address: '::ffff:127.0.0.1',
xdomain: true,
secure: false,
issued: 1435179019584,
url: '/socket.io/?EIO=3&transport=polling&t=1435179017804-3',
query: { EIO: '3', transport: 'polling', t: '1435179017804-3' } }
Client connected from: ::ffff:127.0.0.1
爲什麼?有沒有一些ES6代理的方式?我想也許有一些奇怪的JS轉換魔法已經到位,但它看起來並不像它。
謝謝。你能否告訴我轉換髮生的地方,以及爲什麼只有當我轉儲整個握手對象時纔會發生?我儘可能https://github.com/joyent/node/blob/master/lib/net.js#L595,所以也許這是從console.log實施依賴? – Misiur
我追蹤到https://github.com/joyent/node/blob/master/src/pipe_wrap.cc,但我的C++和OS API /管道知識還不夠。 – Misiur