def handle(self, *args, **options): # set tracker object Connection.tracker = Notifier.tracker = Tracker() # use the routes classmethod to build the correct resource router = tornadio2.router.TornadioRouter(Connection, dict(websocket_check=False, enabled_protocols=[ 'websocket', #'flashsocket', 'xhr-polling', 'jsonp-polling', 'htmlfile', ] ) ) r = router.apply_routes([ #(r"/WebSocketMain.swf", WebSocketFileHandler), ]) # configure the Tornado application application = tornado.web.Application(r, socket_io_port=settings.SERVERPUSH_PORT, flash_policy_port=getattr(settings, 'SERVERPUSH_FLASH_PORT', 10843), flash_policy_file=settings.SERVERPUSH_FLASHPOLICY, ) notifier = tornado.web.Application( [(r"/notify", Notifier)], ) notifier.listen(settings.SERVERPUSH_NOTIFIER_PORT, '0.0.0.0') #logger.setLevel(logging.INFO if getattr(settings, "PRODUCTION", False) else logging.DEBUG) # patch django orm patch() ssl_options = None if getattr(settings, "SERVERPUSH_PROTOCOL", "HTTP") == "HTTPS": cert = getattr(settings, "SSL_CERT", None) cert_key = getattr(settings, "SSL_CERT_KEY", None) if cert and cert_key and op.exists(cert) and op.exists(cert_key): ssl_options = { "certfile": cert, "keyfile": cert_key, } try: tornadio2.server.SocketServer(application, ssl_options=ssl_options) except KeyboardInterrupt: print "Ctr+C pressed; Exiting."
# clean private dir os.system("rm -rf %s >/dev/null 2>&1" % private_dir) os.system("mkdir -p %s" % private_dir) os.system("chown %s %s" % (settings.COMET_USER, private_dir)) os.system("chmod 500 %s" % private_dir) # set socket ssl options ssl_options = {} ssl_options["certfile"] = get_private_copy(settings.COMET_CERT_FILE) ssl_options["keyfile"] = get_private_copy(settings.COMET_KEY_FILE) ssl_options["ca_certs"] = get_private_copy(settings.COMET_CA_CERT) ssl_options["cert_reqs"] = ssl.CERT_OPTIONAL if ssl_options["ca_certs"] else ssl.CERT_NONE # drop privileges os.setuid(pwd.getpwnam(settings.COMET_USER)[2]) # global connections list CONNECTIONS = set() # Create router router = tornadio2.router.TornadioRouter(Connection, {"websocket_check": True}) # Create application application = tornado.web.Application( router.apply_routes([(r"/datachanged", DataChangeHandler)]), socket_io_port=settings.COMET_PORT ) # start server tornadio2.server.SocketServer(application, ssl_options=ssl_options)
os.system("chown %s %s" % (settings.COMET_USER, private_dir)) os.system("chmod 500 %s" % private_dir) # set socket ssl options ssl_options = {} ssl_options['certfile'] = get_private_copy(settings.COMET_CERT_FILE) ssl_options['keyfile'] = get_private_copy(settings.COMET_KEY_FILE) ssl_options['ca_certs'] = get_private_copy(settings.COMET_CA_CERT) ssl_options['cert_reqs'] = ssl.CERT_OPTIONAL if ssl_options[ 'ca_certs'] else ssl.CERT_NONE # drop privileges os.setuid(pwd.getpwnam(settings.COMET_USER)[2]) # global connections list CONNECTIONS = set() # Create router router = tornadio2.router.TornadioRouter(Connection, {'websocket_check': True}) # Create application application = tornado.web.Application( router.apply_routes([ (r"/datachanged", DataChangeHandler), ]), socket_io_port=settings.COMET_PORT, ) # start server tornadio2.server.SocketServer(application, ssl_options=ssl_options)