MCPcopy Create free account
hub / github.com/PrairieLearn/PrairieLearn / onTransportOpen

Function onTransportOpen

public/javascripts/socket.io.js:4108–4148  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

4106 Socket.priorWebsocketSuccess = false;
4107
4108 function onTransportOpen () {
4109 if (self.onlyBinaryUpgrades) {
4110 var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;
4111 failed = failed || upgradeLosesBinary;
4112 }
4113 if (failed) return;
4114
4115 debug('probe transport "%s" opened', name);
4116 transport.send([{ type: 'ping', data: 'probe' }]);
4117 transport.once('packet', function (msg) {
4118 if (failed) return;
4119 if ('pong' === msg.type && 'probe' === msg.data) {
4120 debug('probe transport "%s" pong', name);
4121 self.upgrading = true;
4122 self.emit('upgrading', transport);
4123 if (!transport) return;
4124 Socket.priorWebsocketSuccess = 'websocket' === transport.name;
4125
4126 debug('pausing current transport "%s"', self.transport.name);
4127 self.transport.pause(function () {
4128 if (failed) return;
4129 if ('closed' === self.readyState) return;
4130 debug('changing transport and sending upgrade packet');
4131
4132 cleanup();
4133
4134 self.setTransport(transport);
4135 transport.send([{ type: 'upgrade' }]);
4136 self.emit('upgrade', transport);
4137 transport = null;
4138 self.upgrading = false;
4139 self.flush();
4140 });
4141 } else {
4142 debug('probe transport "%s" failed', name);
4143 var err = new Error('probe error');
4144 err.transport = transport.name;
4145 self.emit('upgradeError', err);
4146 }
4147 });
4148 }
4149
4150 function freezeTransport () {
4151 if (failed) return;

Callers

nothing calls this directly

Calls 2

debugFunction · 0.85
cleanupFunction · 0.85

Tested by

no test coverage detected