Dead sockets with socket.connected == true but conn.readyState == 'closed'
See original GitHub issueUsing websocket only transport (no upgrades), in my production server I often get sockets that are dead but still appear connected. After some digging, it seems that the underlying engine.io socket is disconnected:
socket.client.conn.readyState == 'closed'
but the socket itself is still connected:
socket.connected == true
It’s also interesting that socket.client.sockets
is empty. Unfortunately I cannot reproduce it on my dev machine, but it happens very regularly in our production.
Full trace of the socket object:
Socket {
id: '/#1Hg6XhYhHIScj3-xAAAU',
client:
Client {
server:
Server {
nsps: [Object],
_path: '/socket.io',
_serveClient: true,
_adapter: [Function: Adapter],
_origins: '*:*',
sockets: {},
eio: [Object],
httpServer: [Object],
engine: [Object] },
conn:
Socket {
id: '1Hg6XhYhHIScj3-xAAAU',
server: [Object],
upgrading: false,
upgraded: false,
readyState: 'closed',
writeBuffer: [],
packetsFn: [],
sentCallbackFn: [],
cleanupFn: [],
request: [Object],
remoteAddress: undefined,
checkIntervalTimer: null,
upgradeTimeoutTimer: null,
pingTimeoutTimer: [Object],
transport: [Object],
_events: {},
_eventsCount: 0 },
encoder: Encoder {},
decoder: Decoder { reconstructor: null, _callbacks: [Object] },
id: '1Hg6XhYhHIScj3-xAAAU',
request:
IncomingMessage {
_readableState: [Object],
readable: true,
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
socket: [Object],
connection: [Object],
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
headers: [Object],
rawHeaders: [Object],
trailers: {},
rawTrailers: [],
upgrade: true,
url: '/socket.io/?EIO=3&transport=websocket',
method: 'GET',
statusCode: null,
statusMessage: null,
client: [Object],
_consuming: false,
_dumped: false,
parser: null,
_query: [Object],
websocket: [Object] },
onclose: [Function: bound ],
ondata: [Function: bound ],
onerror: [Function: bound ],
ondecoded: [Function: bound ],
sockets: {},
nsps: {},
connectBuffer: [] },
conn:
Socket {
id: '1Hg6XhYhHIScj3-xAAAU',
server:
Server {
clients: [Object],
clientsCount: 62,
pingTimeout: 60000,
pingInterval: 25000,
upgradeTimeout: 10000,
maxHttpBufferSize: 100000000,
transports: [Object],
allowUpgrades: true,
allowRequest: [Function: bound ],
cookie: 'io',
cookiePath: false,
perMessageDeflate: [Object],
httpCompression: [Object],
ws: [Object],
_events: [Object],
_eventsCount: 1 },
upgrading: false,
upgraded: false,
readyState: 'closed',
writeBuffer: [],
packetsFn: [],
sentCallbackFn: [],
cleanupFn: [],
request:
IncomingMessage {
_readableState: [Object],
readable: true,
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
socket: [Object],
connection: [Object],
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
headers: [Object],
rawHeaders: [Object],
trailers: {},
rawTrailers: [],
upgrade: true,
url: '/socket.io/?EIO=3&transport=websocket',
method: 'GET',
statusCode: null,
statusMessage: null,
client: [Object],
_consuming: false,
_dumped: false,
parser: null,
_query: [Object],
websocket: [Object] },
remoteAddress: undefined,
checkIntervalTimer: null,
upgradeTimeoutTimer: null,
pingTimeoutTimer:
{ '0': null,
_called: false,
_idleTimeout: -1,
_idlePrev: null,
_idleNext: null,
_idleStart: 3260,
_onTimeout: null,
_repeat: null },
transport:
WebSocket {
readyState: 'closed',
discarded: false,
socket: [Object],
writable: true,
perMessageDeflate: [Object],
supportsBinary: true,
_events: [Object],
_eventsCount: 2,
sid: '1Hg6XhYhHIScj3-xAAAU',
req: [Object] },
_events: {},
_eventsCount: 0 },
rooms: {},
acks: { '0': [Function: bound _return] },
connected: true,
disconnected: false,
handshake: { ... },
_events:
{ call: [Function: bound _socketCall],
disconnect: [ [Object], [Object] ],
so_register: [Function: bound _socketRegister],
so_unregister: [Function: bound _socketUnregister] },
_eventsCount: 4,
nsp:
Namespace {
name: '/',
server:
Server {
nsps: [Object],
_path: '/socket.io',
_serveClient: true,
_adapter: [Function: Adapter],
_origins: '*:*',
sockets: [Circular],
eio: [Object],
httpServer: [Object],
engine: [Object] },
sockets:
{ '/#mpXFdRLqNAV9ddV8ABo3': [Object],
'/#PgpLl9IEkhGC8wquABrj': [Object],
'/#Gtg7RgFkVxWIR0G-ACFC': [Object],
'/#ittz_2-t6cHjQwHtACFX': [Object],
'/#N15RCOXAc41mXsJLACIv': [Object],
'/#e63gVURVyWwYuKChACJD': [Object],
'/#zPomBTSI7oHu3rZvACJZ': [Object],
'/#sTKGIUCMfvUWgHgYACJ4': [Object],
'/#xngDiBXaPz3CyfbtACKB': [Object],
'/#AlNGTODK5VKj09-xACKD': [Object],
'/#0QRGe5tkHPIniRBoACLO': [Object],
'/#2z1xOZoKWwKeNDWIACLm': [Object],
'/#UWxktnMDPRXs4DhBACMJ': [Object],
'/#xtHO7ZsR-nci8o5UACM2': [Object],
'/#5UFHi8aa5b3FvN-uACM7': [Object],
'/#abJSNk2XWIEpyFVeACM_': [Object],
'/#jQSSTvXsUibvlQIdACNJ': [Object],
'/#169Og85oGVYMdAyVACNN': [Object],
'/#hz7FpP60SyUheD9cACNu': [Object],
'/#LNwxMo_J9wQIX2iBACN0': [Object],
'/#BdcqSS7RV25Tf4HOACOT': [Object],
'/#zdC-LNqIosP53HJLACOk': [Object],
'/#A9lwOkH3K1rEgmpsACOu': [Object],
'/#y8v2mg7y9kb9ycMGACOv': [Object],
'/#ai8CLwH8OLrWJpT2ACOw': [Object],
'/#CFqZN1PfXorK5TmYACO3': [Object],
'/#IKtfHdLnQapecYkKACPD': [Object],
'/#TJ_XK-WsZpnuYLW6ACPX': [Object],
'/#VdCv3ugKE_AXY7y_ACPa': [Object],
'/#afU-22Kru62eB-ExACPc': [Object],
'/#pmT3Ul9nOEThe4dYACPd': [Object],
'/#7zcvOThOc3q3t2_jACPk': [Object],
'/#PeaR3IFjWr2OZw7RACPm': [Object],
'/#sDs1_lrwWw9kM7f8ACPp': [Object],
'/#1w40F0qSwfSI8MTcACPs': [Object],
'/#wtXLcq8Xjzd9O1QoACQH': [Object],
'/#C_JP4PxqWxJyiNjCACQQ': [Object],
'/#LCebqRf6_1Mxl1TYACQS': [Object],
'/#QpIa716sqKKQBhoRACQU': [Object],
'/#gOhtDjTOnDZYH6u4ACQW': [Object],
'/#BGqCqXmaj3Lfx_M5ACQb': [Object],
'/#x51Jjk4Sag-0rcNbACQc': [Object],
'/#T5Plt9fPQz7ioG-MACQf': [Object],
'/#0fMw16m2vvFAUODaACQg': [Object],
'/#xKBqzpxIQxV1EKaqACQj': [Object],
'/#KN1y8qDEyQhQyDKYACQl': [Object],
'/#dQEeP_3lvfyQJnvXACQm': [Object],
'/#nKI07ZGLUA4N0Mv7ACQp': [Object],
'/#MyuFcxLfFL5MLfZMACQr': [Object],
'/#TYCVuF-SR29fQqnbACQy': [Object],
'/#lQoZ5voA3Wl6W-qYACQ2': [Object],
'/#KsI2yQbvLYzf7iBYACQ3': [Object],
'/#tv1k7HrmVCK218muACQ-': [Object],
'/#UA1SIcCFggR4D5fwACRA': [Object],
'/#IGm5hdpvorgKl47jACRC': [Object],
'/#shiT7knJwgNtiQoUACRD': [Object],
'/#rcsf_x_qZYwzLFCTACRG': [Object],
'/#mEVeZ-RDFJvrbt7CACRH': [Object],
'/#eI3g-e0JDMj74DAjACRL': [Object],
'/#ViYa_AJ56TSNMr4fACRN': [Object],
'/#CjVXD0KsMAn1M-3zACRQ': [Object],
'/#4zb-IVPfYsq6_FjwACRV': [Object] },
connected:
{ '/#mpXFdRLqNAV9ddV8ABo3': [Object],
'/#PgpLl9IEkhGC8wquABrj': [Object],
'/#Gtg7RgFkVxWIR0G-ACFC': [Object],
'/#ittz_2-t6cHjQwHtACFX': [Object],
'/#N15RCOXAc41mXsJLACIv': [Object],
'/#e63gVURVyWwYuKChACJD': [Object],
'/#zPomBTSI7oHu3rZvACJZ': [Object],
'/#sTKGIUCMfvUWgHgYACJ4': [Object],
'/#xngDiBXaPz3CyfbtACKB': [Object],
'/#AlNGTODK5VKj09-xACKD': [Object],
'/#0QRGe5tkHPIniRBoACLO': [Object],
'/#2z1xOZoKWwKeNDWIACLm': [Object],
'/#UWxktnMDPRXs4DhBACMJ': [Object],
'/#xtHO7ZsR-nci8o5UACM2': [Object],
'/#5UFHi8aa5b3FvN-uACM7': [Object],
'/#abJSNk2XWIEpyFVeACM_': [Object],
'/#jQSSTvXsUibvlQIdACNJ': [Object],
'/#169Og85oGVYMdAyVACNN': [Object],
'/#hz7FpP60SyUheD9cACNu': [Object],
'/#LNwxMo_J9wQIX2iBACN0': [Object],
'/#BdcqSS7RV25Tf4HOACOT': [Object],
'/#zdC-LNqIosP53HJLACOk': [Object],
'/#A9lwOkH3K1rEgmpsACOu': [Object],
'/#y8v2mg7y9kb9ycMGACOv': [Object],
'/#ai8CLwH8OLrWJpT2ACOw': [Object],
'/#CFqZN1PfXorK5TmYACO3': [Object],
'/#IKtfHdLnQapecYkKACPD': [Object],
'/#TJ_XK-WsZpnuYLW6ACPX': [Object],
'/#VdCv3ugKE_AXY7y_ACPa': [Object],
'/#afU-22Kru62eB-ExACPc': [Object],
'/#pmT3Ul9nOEThe4dYACPd': [Object],
'/#7zcvOThOc3q3t2_jACPk': [Object],
'/#PeaR3IFjWr2OZw7RACPm': [Object],
'/#sDs1_lrwWw9kM7f8ACPp': [Object],
'/#1w40F0qSwfSI8MTcACPs': [Object],
'/#wtXLcq8Xjzd9O1QoACQH': [Object],
'/#C_JP4PxqWxJyiNjCACQQ': [Object],
'/#LCebqRf6_1Mxl1TYACQS': [Object],
'/#QpIa716sqKKQBhoRACQU': [Object],
'/#gOhtDjTOnDZYH6u4ACQW': [Object],
'/#BGqCqXmaj3Lfx_M5ACQb': [Object],
'/#x51Jjk4Sag-0rcNbACQc': [Object],
'/#T5Plt9fPQz7ioG-MACQf': [Object],
'/#0fMw16m2vvFAUODaACQg': [Object],
'/#xKBqzpxIQxV1EKaqACQj': [Object],
'/#KN1y8qDEyQhQyDKYACQl': [Object],
'/#dQEeP_3lvfyQJnvXACQm': [Object],
'/#nKI07ZGLUA4N0Mv7ACQp': [Object],
'/#MyuFcxLfFL5MLfZMACQr': [Object],
'/#TYCVuF-SR29fQqnbACQy': [Object],
'/#lQoZ5voA3Wl6W-qYACQ2': [Object],
'/#KsI2yQbvLYzf7iBYACQ3': [Object],
'/#tv1k7HrmVCK218muACQ-': [Object],
'/#UA1SIcCFggR4D5fwACRA': [Object],
'/#IGm5hdpvorgKl47jACRC': [Object],
'/#shiT7knJwgNtiQoUACRD': [Object],
'/#rcsf_x_qZYwzLFCTACRG': [Object],
'/#mEVeZ-RDFJvrbt7CACRH': [Object],
'/#eI3g-e0JDMj74DAjACRL': [Object],
'/#ViYa_AJ56TSNMr4fACRN': [Object],
'/#CjVXD0KsMAn1M-3zACRQ': [Object],
'/#4zb-IVPfYsq6_FjwACRV': [Object] },
fns: [ [Function: bound connected] ],
ids: 263,
adapter:
Adapter {
nsp: [Circular],
rooms: [Object],
sids: [Object],
encoder: Encoder {} } },
server:
Server {
nsps: { '/': [Object] },
_path: '/socket.io',
_serveClient: true,
_adapter: [Function: Adapter],
_origins: '*:*',
sockets:
Namespace {
name: '/',
server: [Circular],
sockets: [Object],
connected: [Object],
fns: [Object],
ids: 263,
adapter: [Object] },
eio:
Server {
clients: [Object],
clientsCount: 62,
pingTimeout: 60000,
pingInterval: 25000,
upgradeTimeout: 10000,
maxHttpBufferSize: 100000000,
transports: [Object],
allowUpgrades: true,
allowRequest: [Function: bound ],
cookie: 'io',
cookiePath: false,
perMessageDeflate: [Object],
httpCompression: [Object],
ws: [Object],
_events: [Object],
_eventsCount: 1 },
httpServer:
Server {
domain: null,
_events: [Object],
_eventsCount: 5,
_maxListeners: undefined,
_connections: 78,
_handle: [Object],
_usingSlaves: false,
_slaves: [],
_unref: false,
allowHalfOpen: true,
pauseOnConnect: false,
httpAllowHalfOpen: false,
timeout: 120000,
_pendingResponseData: 0,
_pipeName: '/tmp/lazytime-2947.sock',
_connectionKey: '-1:/tmp/lazytime-2947.sock:-1' },
engine:
Server {
clients: [Object],
clientsCount: 62,
pingTimeout: 60000,
pingInterval: 25000,
upgradeTimeout: 10000,
maxHttpBufferSize: 100000000,
transports: [Object],
allowUpgrades: true,
allowRequest: [Function: bound ],
cookie: 'io',
cookiePath: false,
perMessageDeflate: [Object],
httpCompression: [Object],
ws: [Object],
_events: [Object],
_eventsCount: 1 } },
adapter:
Adapter {
nsp:
Namespace {
name: '/',
server: [Object],
sockets: [Object],
connected: [Object],
fns: [Object],
ids: 263,
adapter: [Circular] },
rooms:
{ '/#mpXFdRLqNAV9ddV8ABo3': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_637_322332849': [Object],
'/#PgpLl9IEkhGC8wquABrj': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_682_814013352': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_775_367324151': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_792_754277181': [Object],
'/#Gtg7RgFkVxWIR0G-ACFC': [Object],
'/#ittz_2-t6cHjQwHtACFX': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_805_960091403': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_807_815936249': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_811_822210855': [Object],
'/#N15RCOXAc41mXsJLACIv': [Object],
'/#e63gVURVyWwYuKChACJD': [Object],
'/#zPomBTSI7oHu3rZvACJZ': [Object],
'/#sTKGIUCMfvUWgHgYACJ4': [Object],
'/#xngDiBXaPz3CyfbtACKB': [Object],
'/#AlNGTODK5VKj09-xACKD': [Object],
'/#0QRGe5tkHPIniRBoACLO': [Object],
'/#2z1xOZoKWwKeNDWIACLm': [Object],
'/#UWxktnMDPRXs4DhBACMJ': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_841_567736259': [Object],
'/#xtHO7ZsR-nci8o5UACM2': [Object],
'/#5UFHi8aa5b3FvN-uACM7': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_781_131630785': [Object],
'/#abJSNk2XWIEpyFVeACM_': [Object],
'/#jQSSTvXsUibvlQIdACNJ': [Object],
'/#169Og85oGVYMdAyVACNN': [Object],
'/#hz7FpP60SyUheD9cACNu': [Object],
'/#LNwxMo_J9wQIX2iBACN0': [Object],
'/#BdcqSS7RV25Tf4HOACOT': [Object],
'/#zdC-LNqIosP53HJLACOk': [Object],
'/#A9lwOkH3K1rEgmpsACOu': [Object],
'/#y8v2mg7y9kb9ycMGACOv': [Object],
'/#ai8CLwH8OLrWJpT2ACOw': [Object],
'/#CFqZN1PfXorK5TmYACO3': [Object],
'/#IKtfHdLnQapecYkKACPD': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_857_947771824': [Object],
'/#TJ_XK-WsZpnuYLW6ACPX': [Object],
'/#VdCv3ugKE_AXY7y_ACPa': [Object],
'/#afU-22Kru62eB-ExACPc': [Object],
'/#pmT3Ul9nOEThe4dYACPd': [Object],
'/#7zcvOThOc3q3t2_jACPk': [Object],
'/#PeaR3IFjWr2OZw7RACPm': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_859_942849326': [Object],
'/#sDs1_lrwWw9kM7f8ACPp': [Object],
'/#1w40F0qSwfSI8MTcACPs': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_609_773513602': [Object],
'/#wtXLcq8Xjzd9O1QoACQH': [Object],
'/#C_JP4PxqWxJyiNjCACQQ': [Object],
'/#LCebqRf6_1Mxl1TYACQS': [Object],
'/#QpIa716sqKKQBhoRACQU': [Object],
'/#gOhtDjTOnDZYH6u4ACQW': [Object],
'/#BGqCqXmaj3Lfx_M5ACQb': [Object],
'/#x51Jjk4Sag-0rcNbACQc': [Object],
'/#T5Plt9fPQz7ioG-MACQf': [Object],
'/#0fMw16m2vvFAUODaACQg': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_866_981833503': [Object],
'/#xKBqzpxIQxV1EKaqACQj': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_867_56605879': [Object],
'/#KN1y8qDEyQhQyDKYACQl': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_868_813744036': [Object],
'/#dQEeP_3lvfyQJnvXACQm': [Object],
'/#nKI07ZGLUA4N0Mv7ACQp': [Object],
'/#MyuFcxLfFL5MLfZMACQr': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_869_297647636': [Object],
'/#TYCVuF-SR29fQqnbACQy': [Object],
'/#lQoZ5voA3Wl6W-qYACQ2': [Object],
'/#KsI2yQbvLYzf7iBYACQ3': [Object],
'/#tv1k7HrmVCK218muACQ-': [Object],
'/#UA1SIcCFggR4D5fwACRA': [Object],
'/#IGm5hdpvorgKl47jACRC': [Object],
'/#shiT7knJwgNtiQoUACRD': [Object],
'/#rcsf_x_qZYwzLFCTACRG': [Object],
'/#mEVeZ-RDFJvrbt7CACRH': [Object],
'/#eI3g-e0JDMj74DAjACRL': [Object],
'/#ViYa_AJ56TSNMr4fACRN': [Object],
'/#CjVXD0KsMAn1M-3zACRQ': [Object],
'zstandalone/roulette/1/2__games/roulette/roulette_871_662515426': [Object],
'/#4zb-IVPfYsq6_FjwACRV': [Object] },
sids:
{ '/#mpXFdRLqNAV9ddV8ABo3': [Object],
'/#PgpLl9IEkhGC8wquABrj': [Object],
'/#Gtg7RgFkVxWIR0G-ACFC': [Object],
'/#ittz_2-t6cHjQwHtACFX': [Object],
'/#N15RCOXAc41mXsJLACIv': [Object],
'/#e63gVURVyWwYuKChACJD': [Object],
'/#zPomBTSI7oHu3rZvACJZ': [Object],
'/#sTKGIUCMfvUWgHgYACJ4': [Object],
'/#xngDiBXaPz3CyfbtACKB': [Object],
'/#AlNGTODK5VKj09-xACKD': [Object],
'/#0QRGe5tkHPIniRBoACLO': [Object],
'/#2z1xOZoKWwKeNDWIACLm': [Object],
'/#UWxktnMDPRXs4DhBACMJ': [Object],
'/#xtHO7ZsR-nci8o5UACM2': [Object],
'/#5UFHi8aa5b3FvN-uACM7': [Object],
'/#abJSNk2XWIEpyFVeACM_': [Object],
'/#jQSSTvXsUibvlQIdACNJ': [Object],
'/#169Og85oGVYMdAyVACNN': [Object],
'/#hz7FpP60SyUheD9cACNu': [Object],
'/#LNwxMo_J9wQIX2iBACN0': [Object],
'/#BdcqSS7RV25Tf4HOACOT': [Object],
'/#zdC-LNqIosP53HJLACOk': [Object],
'/#A9lwOkH3K1rEgmpsACOu': [Object],
'/#y8v2mg7y9kb9ycMGACOv': [Object],
'/#ai8CLwH8OLrWJpT2ACOw': [Object],
'/#CFqZN1PfXorK5TmYACO3': [Object],
'/#IKtfHdLnQapecYkKACPD': [Object],
'/#TJ_XK-WsZpnuYLW6ACPX': [Object],
'/#VdCv3ugKE_AXY7y_ACPa': [Object],
'/#afU-22Kru62eB-ExACPc': [Object],
'/#pmT3Ul9nOEThe4dYACPd': [Object],
'/#7zcvOThOc3q3t2_jACPk': [Object],
'/#PeaR3IFjWr2OZw7RACPm': [Object],
'/#sDs1_lrwWw9kM7f8ACPp': [Object],
'/#1w40F0qSwfSI8MTcACPs': [Object],
'/#wtXLcq8Xjzd9O1QoACQH': [Object],
'/#C_JP4PxqWxJyiNjCACQQ': [Object],
'/#LCebqRf6_1Mxl1TYACQS': [Object],
'/#QpIa716sqKKQBhoRACQU': [Object],
'/#gOhtDjTOnDZYH6u4ACQW': [Object],
'/#BGqCqXmaj3Lfx_M5ACQb': [Object],
'/#x51Jjk4Sag-0rcNbACQc': [Object],
'/#T5Plt9fPQz7ioG-MACQf': [Object],
'/#0fMw16m2vvFAUODaACQg': [Object],
'/#xKBqzpxIQxV1EKaqACQj': [Object],
'/#KN1y8qDEyQhQyDKYACQl': [Object],
'/#dQEeP_3lvfyQJnvXACQm': [Object],
'/#nKI07ZGLUA4N0Mv7ACQp': [Object],
'/#MyuFcxLfFL5MLfZMACQr': [Object],
'/#TYCVuF-SR29fQqnbACQy': [Object],
'/#lQoZ5voA3Wl6W-qYACQ2': [Object],
'/#KsI2yQbvLYzf7iBYACQ3': [Object],
'/#tv1k7HrmVCK218muACQ-': [Object],
'/#UA1SIcCFggR4D5fwACRA': [Object],
'/#IGm5hdpvorgKl47jACRC': [Object],
'/#shiT7knJwgNtiQoUACRD': [Object],
'/#rcsf_x_qZYwzLFCTACRG': [Object],
'/#mEVeZ-RDFJvrbt7CACRH': [Object],
'/#eI3g-e0JDMj74DAjACRL': [Object],
'/#ViYa_AJ56TSNMr4fACRN': [Object],
'/#CjVXD0KsMAn1M-3zACRQ': [Object],
'/#4zb-IVPfYsq6_FjwACRV': [Object] },
encoder: Encoder {} },
}
Issue Analytics
- State:
- Created 7 years ago
- Reactions:2
- Comments:13 (1 by maintainers)
Top Results From Across the Web
javascript - How to wait for a WebSocket's readyState to change
onclose An event listener to be called when the WebSocket connection's readyState changes to CLOSED. The listener receives a CloseEvent named "close".
Read more >Troubleshooting connection issues | Socket.IO
You are trying to reach a plain WebSocket server; The server is not reachable; The client is not compatible with the version of...
Read more >Reliable packet delivery using socket.io
It checks readyState for closing and close , but, again, if the connection is lost right before emit , readyState will still be...
Read more >Server-Sent Events: the alternative to WebSockets you should ...
WebSockets are the most used technology for real-time web apps. However, Server Sent Events (SSE) are a simpler alternative that is often ...
Read more >WebSocketClient (Java-WebSocket 1.3.5 API) - javadoc.io
This happens before the socket connection is closed. boolean, isOpen(). Is the websocket in the state OPEN. abstract void ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I think we’re experiencing the same problem, did you get any further with this? @stwiname were you able to reproduce?
Closed due to inactivity, please reopen if needed.