backoffMethod.on('fail', function (e) { emitter.disconnect() emitter.emit('fail', e) })
engine.block = function(addr) { blocked.add(addr.split(':')[0]); engine.disconnect(addr); engine.emit('blocking', addr); };
self.connect = function(id) { if (id) { config = configs.getById(+id); if (!config) { cli.render("Error: config with id " + id + " not found"); return; } } cli.render(config); self.disconnect(); config.mount().then(function(confFileName) { if (configs.getErrors().length > 0) { cli.render(configs.getErrors().join('\n')); } vpnProcess = spawn(openvpnCmd, ['--config', confFileName]); vpnProcess.stdout.on('data', function (data) { data = data.toString('UTF-8'); self.emit('vpn-log', data); config.setStatus("Connecting"); if (data.match('Initialization Sequence Completed')) { config.setStatus("Connected"); self.emit('vpn-connected', data); } else if (data.match('Operation not permitted')) { throw new Error('Operation not permitted'); } for (var i = 0; i < fails.length; i++) { if (data.match(fails[i])) { self.emit('vpn-failed'); return; } } cli.render(config); }); vpnProcess.stderr.on('data', function(data) { cli.render(data); }); vpnProcess.on('error', function(error) { self.emit("vpnprocess-error", error); if (error.code === 'ENOENT') { cli.render('Please install openvpn at first! https://openvpn.net'); } else { cli.render(error.message); } process.exit(); }); vpnProcess.on('close', function(code) { self.emit("vpnprocess-exit", code); if (config) { config.setStatus('Disconnected'); cli.render(config); } }); }); };
context.connection.on('error', function(err){ self.disconnect() })
self.connect = function(server, nickname){ self.emit('connnecting', server) context.data.state = 'connecting' if (context.connection){ self.disconnect() } var server = server.replace(/^.+\:\/\//, '') context.connection = connect('ws://' + server) context.connection.on('error', function(err){ self.disconnect() }) context.data.server = server context.data.sampleRoot = 'http://' + server + '/files/' // send our local messages to server if (nickname){ context.data.nickname = nickname } // sync with other users context.syncer = Syncer(audioContext.scheduler, context.connection) context.syncer.on('offset', updateOffset) context.syncer.sync() // resync after the server noise has died down setTimeout(function(){ context.syncer&&context.syncer.sync() }, 3000) if (context.localInstance){ releaseLocalInstance = connectLocalInstance(context.connection, context.localInstance) } broadcastLocalInstance() refresh() context.connection.on('data', function(message){ var shouldRefresh = false if (message.from == 'server'){ if (message.clientId){ context.data.clientId = message.clientId if (!context.data.nickname){ context.data.nickname = 'remote' + message.clientId } self.emit('connected', server, message.clientId) context.data.state = 'connected' shouldRefresh = true } if (message.clientDisconnect){ if (remoteDisconnect(message.clientDisconnect)){ shouldRefresh = true } } if (message.requestFile){ handleSampleRequest(message.requestFile) } } else if (typeof message.from == 'number') { // message from remote if (updateRemote(message.from, message)){ shouldRefresh = true } } if (shouldRefresh){ refresh() } }) }
omegle.reconnect = function(){ if (!connected) return; omegle.disconnect(); omegle.connect(); }
process.on ("SIGINT", function(){ omegle.disconnect(); process.exit (); });