SEAPUNK / socketeer

yet another websocket framework
MIT License
3 stars 0 forks source link

reconnect() and/or resume() do not work on connections that have their heartbeat timed out #51

Closed SEAPUNK closed 8 years ago

SEAPUNK commented 8 years ago

Not quite sure why this is so yet. Will look into it.

SEAPUNK commented 8 years ago

Error stack collected from the time I encountered the problem:

Error: client has not disconnected to reconnect yet
    at Client.reconnect (/home/ivan/xbpf-dev/feedfetch/node_modules/socketeer/lib/Client.js:171:13)
    at UptimerConnector.handleClose (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcuptimer.js:112:17)
    at Client.<anonymous> (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcuptimer.js:68:35)
    at emitThree (events.js:110:13)
    at Client.emit (events.js:188:7)
    at Client._handleClose (/home/ivan/xbpf-dev/feedfetch/node_modules/socketeer/lib/ClientAbstract.js:165:10)
    at Client._handleClose (/home/ivan/xbpf-dev/feedfetch/node_modules/socketeer/lib/Client.js:104:11)
    at Client._handleError (/home/ivan/xbpf-dev/feedfetch/node_modules/socketeer/lib/ClientAbstract.js:131:10)
    at [object Object].<anonymous> (/home/ivan/xbpf-dev/feedfetch/node_modules/socketeer/lib/Client.js:142:12)
    at Timer.listOnTimeout (timers.js:92:15)
-- async --
    at UptimerConnector (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcuptimer.js:68:12)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcuptimer.js:15:24
    at [object Generator].next (native)
    at step (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcuptimer.js:42:191)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcuptimer.js:42:451
    at new Promise (/home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/es6.promise.js:197:7)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcuptimer.js:42:99
    at connectToUptimer (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcuptimer.js:24:16)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:118:56
    at [object Generator].next (native)
    at step (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:190:191)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:190:368
    at run (/home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/es6.promise.js:104:47)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/es6.promise.js:115:28
    at flush (/home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/$.microtask.js:19:5)
    at _combinedTickCallback (node.js:370:9)
    at process._tickDomainCallback (node.js:425:11)
    at Function.Module.runMain (module.js:449:11)
    at startup (node.js:141:18)
    at node.js:933:3
-- async --
    at notify (/home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/$.microtask.js:29:13)
    at asap (/home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/$.microtask.js:62:5)
    at notify (/home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/es6.promise.js:92:3)
    at Object.$resolve (/home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/es6.promise.js:174:7)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/$.ctx.js:8:17
    at step (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcscheduler.js:25:282)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcscheduler.js:25:451
    at new Promise (/home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/es6.promise.js:197:7)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcscheduler.js:25:99
    at setupJobManager (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/module/svcscheduler.js:15:16)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:115:64
    at [object Generator].next (native)
    at step (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:190:191)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:190:451
    at new Promise (/home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/es6.promise.js:197:7)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:190:99
    at configureService (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:131:16)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:24:23
    at [object Generator].next (native)
    at step (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:190:191)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:190:451
    at new Promise (/home/ivan/xbpf-dev/feedfetch/node_modules/core-js/modules/es6.promise.js:197:7)
    at /home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:190:99
    at bootstrap (/home/ivan/xbpf-dev/feedfetch/node_modules/@xbpf/service-base/lib/index.js:106:16)
    at Object.<anonymous> (/home/ivan/xbpf-dev/feedfetch/lib/index.js:43:28)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:141:18)
    at node.js:933:3
SEAPUNK commented 8 years ago

99% sure this is due to the isClosed() check. Will test it right now.

SEAPUNK commented 8 years ago

Yeah, it's because when _handleClose() is called, the websocket isn't necessarily in the CLOSED readyState. It can be CLOSING. Fixed in bc11fcc