def setUp(self): import cyclone.web from autobahn.twisted.websocket import WebSocketServerFactory from autobahn.twisted.resource import WebSocketResource from autopush.main import skip_request_logging from autopush.endpoint import EndpointHandler, MessageHandler, RegistrationHandler from autopush.settings import AutopushSettings from autopush.websocket import ( PushServerProtocol, RouterHandler, NotificationHandler, DefaultResource, StatusResource, ) from twisted.web.server import Site router_table = os.environ.get("ROUTER_TABLE", "router_int_test") storage_table = os.environ.get("STORAGE_TABLE", "storage_int_test") message_table = os.environ.get("MESSAGE_TABLE", "message_int_test") settings = AutopushSettings( hostname="localhost", statsd_host=None, endpoint_port="9020", router_port="9030", router_tablename=router_table, storage_tablename=storage_table, message_tablename=message_table, ) # Websocket server self._ws_url = "ws://localhost:9010/" factory = WebSocketServerFactory(self._ws_url, debug=False) factory.protocol = PushServerProtocol factory.protocol.ap_settings = settings factory.setProtocolOptions(webStatus=False, openHandshakeTimeout=5) settings.factory = factory resource = DefaultResource(WebSocketResource(factory)) resource.putChild("status", StatusResource()) self.websocket = reactor.listenTCP(9010, Site(resource)) # Websocket HTTP router # Internal HTTP notification router r = RouterHandler r.ap_settings = settings n = NotificationHandler n.ap_settings = settings ws_site = cyclone.web.Application( [(r"/push/([^\/]+)", r), (r"/notif/([^\/]+)(/([^\/]+))?", n)], default_host=settings.router_hostname, log_function=skip_request_logging, debug=False, ) self.ws_website = reactor.listenTCP(9030, ws_site) # Endpoint HTTP router site = cyclone.web.Application( [ (r"/push/([^\/]+)", EndpointHandler, dict(ap_settings=settings)), (r"/m/([^\/]+)", MessageHandler, dict(ap_settings=settings)), # PUT /register/ => connect info # GET /register/uaid => chid + endpoint (r"/register(?:/(.+))?", RegistrationHandler, dict(ap_settings=settings)), ], default_host=settings.hostname, log_function=skip_request_logging, debug=False, ) self.website = reactor.listenTCP(9020, site) self._settings = settings
def setUp(self): import cyclone.web from autobahn.twisted.websocket import WebSocketServerFactory from autobahn.twisted.resource import WebSocketResource from autopush.main import skip_request_logging from autopush.endpoint import ( EndpointHandler, MessageHandler, RegistrationHandler, ) from autopush.settings import AutopushSettings from autopush.websocket import ( PushServerProtocol, RouterHandler, NotificationHandler, DefaultResource, StatusResource, ) from twisted.web.server import Site router_table = os.environ.get("ROUTER_TABLE", "router_int_test") storage_table = os.environ.get("STORAGE_TABLE", "storage_int_test") message_table = os.environ.get("MESSAGE_TABLE", "message_int_test") settings = AutopushSettings( hostname="localhost", statsd_host=None, endpoint_port="9020", router_port="9030", router_tablename=router_table, storage_tablename=storage_table, message_tablename=message_table, ) # Websocket server self._ws_url = "ws://localhost:9010/" factory = WebSocketServerFactory(self._ws_url, debug=False) factory.protocol = PushServerProtocol factory.protocol.ap_settings = settings factory.setProtocolOptions( webStatus=False, maxFramePayloadSize=2048, maxMessagePayloadSize=2048, openHandshakeTimeout=5, ) settings.factory = factory resource = DefaultResource(WebSocketResource(factory)) resource.putChild("status", StatusResource()) self.websocket = reactor.listenTCP(9010, Site(resource)) # Websocket HTTP router # Internal HTTP notification router r = RouterHandler r.ap_settings = settings n = NotificationHandler n.ap_settings = settings ws_site = cyclone.web.Application( [ (r"/push/([^\/]+)", r), (r"/notif/([^\/]+)(/([^\/]+))?", n), ], default_host=settings.router_hostname, log_function=skip_request_logging, debug=False, ) self.ws_website = reactor.listenTCP(9030, ws_site) # Endpoint HTTP router site = cyclone.web.Application( [ (r"/push/([^\/]+)", EndpointHandler, dict(ap_settings=settings)), (r"/m/([^\/]+)", MessageHandler, dict(ap_settings=settings)), # PUT /register/ => connect info # GET /register/uaid => chid + endpoint (r"/register(?:/(.+))?", RegistrationHandler, dict(ap_settings=settings)), ], default_host=settings.hostname, log_function=skip_request_logging, debug=False, ) self.website = reactor.listenTCP(9020, site) self._settings = settings