If I wait for a while, then the whole chain repeats itself, even though the client never reconnects via the "io.connect(...)" line. I verified this by putting in console.log()s and breakpoints on the client side. The debug log seems to indicate the websocket transport ended, so perhaps this is as expected as it auto-re-attaches. Still, though, it double-connects.
C:\work\wb>node --debug wb.js
debugger listening on port 5858
C:\work\wb/index.html
debug - served static content /socket.io.js
debug - client authorized
info - handshake authorized 1300944561171091421
C:\work\wb/index.html
debug - set heartbeat interval for client 1300944561171091421
debug - client authorized for
debug - websocket writing 1::
1300944561171091421 [I printed the socket id out at the beginning of the "connection" handler]
debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
1300944561171091421
debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
{ my: 'data' }
{ my: 'data' }
{ my: 'data' }
{ my: 'data' }
debug - emitting heartbeat for client 1300944561171091421
debug - websocket writing 2::
debug - set heartbeat timeout for client 1300944561171091421
debug - got heartbeat packet
debug - cleared heartbeat timeout for client 1300944561171091421
debug - set heartbeat interval for client 1300944561171091421
info - transport end
debug - set close timeout for client 1300944561171091421
debug - cleared close timeout for client 1300944561171091421
debug - cleared heartbeat interval for client 1300944561171091421
debug - discarding transport
debug - client authorized
info - handshake authorized 900933533848425194
debug - set heartbeat interval for client 900933533848425194
debug - client authorized for
debug - websocket writing 1::
900933533848425194
debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
900933533848425194
debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
{ my: 'data' }
{ my: 'data' }
{ my: 'data' }
{ my: 'data' }
debug - emitting heartbeat for client 900933533848425194
debug - websocket writing 2::
debug - set heartbeat timeout for client 900933533848425194
debug - got heartbeat packet
debug - cleared heartbeat timeout for client 900933533848425194
debug - set heartbeat interval for client 900933533848425194
info - transport end
debug - set close timeout for client 900933533848425194
debug - cleared close timeout for client 900933533848425194
debug - cleared heartbeat interval for client 900933533848425194
debug - discarding transport
debug - client authorized
info - handshake authorized 184719094279175023
debug - set heartbeat interval for client 184719094279175023
debug - client authorized for
debug - websocket writing 1::
184719094279175023
debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
184719094279175023
debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
{ my: 'data' }
{ my: 'data' }
{ my: 'data' }
{ my: 'data' }
debug - emitting heartbeat for client 184719094279175023
debug - websocket writing 2::
debug - set heartbeat timeout for client 184719094279175023
debug - got heartbeat packet
debug - cleared heartbeat timeout for client 184719094279175023
debug - set heartbeat interval for client 184719094279175023
info - transport end