MCPcopy Create free account
hub / github.com/CloudBoost/cloudboost / onTransportOpen

Function onTransportOpen

sdk/src/CloudSocketClientLib.js:380–434  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

378 Socket.priorWebsocketSuccess = false;
379
380 function onTransportOpen() {
381 if (self.onlyBinaryUpgrades) {
382 var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;
383 failed = failed || upgradeLosesBinary;
384 }
385 if (failed)
386 return;
387
388 debug('probe transport "%s" opened', name);
389 transport.send([
390 {
391 type: 'ping',
392 data: 'probe'
393 }
394 ]);
395 transport.once('packet', function(msg) {
396 if (failed)
397 return;
398 if ('pong' == msg.type && 'probe' == msg.data) {
399 debug('probe transport "%s" pong', name);
400 self.upgrading = true;
401 self.emit('upgrading', transport);
402 if (!transport)
403 return;
404 Socket.priorWebsocketSuccess = 'websocket' == transport.name;
405
406 debug('pausing current transport "%s"', self.transport.name);
407 self.transport.pause(function() {
408 if (failed)
409 return;
410 if ('closed' == self.readyState)
411 return;
412 debug('changing transport and sending upgrade packet');
413
414 cleanup();
415
416 self.setTransport(transport);
417 transport.send([
418 {
419 type: 'upgrade'
420 }
421 ]);
422 self.emit('upgrade', transport);
423 transport = null;
424 self.upgrading = false;
425 self.flush();
426 });
427 } else {
428 debug('probe transport "%s" failed', name);
429 var err = new Error('probe error');
430 err.transport = transport.name;
431 self.emit('upgradeError', err);
432 }
433 });
434 }
435
436 function freezeTransport() {
437 if (failed)

Callers

nothing calls this directly

Calls 2

debugFunction · 0.70
cleanupFunction · 0.70

Tested by

no test coverage detected