/// /// /// /// import turn_frontend = require('../../turn-frontend/freedom-module.interface'); import turn_backend = require('../../turn-backend/freedom-module.interface'); import net = require('../../net/net.types'); import logging = require('../../../../third_party/uproxy-lib/logging/logging'); import loggingTypes = require('../../../../third_party/uproxy-lib/loggingprovider/loggingprovider.types'); freedom['loggingcontroller']().setDefaultFilter(loggingTypes.Destination.console, loggingTypes.Level.info); var log :logging.Log = new logging.Log('simple TURN'); var frontend :turn_frontend.freedom_TurnFrontend = freedom['turnFrontend'](); var backend :turn_backend.freedom_TurnBackend = freedom['turnBackend'](); frontend.bind('127.0.0.1', 9997).then(() => { // Connect the TURN server with the net module. // Normally, these messages would traverse the internet // along an encrypted channel. frontend.on('ipc', function(m:turn_frontend.IpcEventMessage) { backend.handleIpc(m.data).catch((e) => { log.error('backend failed to handle ipc: ' + e.message); }); }); backend.on('ipc', function(m:turn_backend.IpcEventMessage) { frontend.handleIpc(m.data).catch((e) => { log.error('frontend failed to handle ipc: ' + e.message); }) }); }, (e) => { log.error('failed to start TURN frontend: ' + e.message); });