def start(self, **kwargs): host = 'www.bitsgap.com' port = 443 ssl = True conn_str = f'wss://{host}/ws/?wsguid={self.public_key}' factory = WebSocketClientFactory(conn_str) factory.protocol = MyClientProtocol if 'callback' in kwargs: factory.callback = kwargs['callback'] factory.base_client = self loop = asyncio.get_event_loop() try: coro = loop.create_connection(factory, host, port, ssl=ssl) loop.run_until_complete(coro) loop.run_forever() except KeyboardInterrupt: pass finally: loop.close()
def listen_for_events(callback): try: while True: print("Attempting to open websocket connection") factory = WebSocketClientFactory(u"wss://certstream.calidog.io") factory.setProtocolOptions(openHandshakeTimeout=10, tcpNoDelay=True) factory.protocol = MyClientProtocol factory.callback = callback ssl_context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH) ssl_context.check_hostname = True loop = asyncio.get_event_loop() coro = loop.create_connection(factory, 'certstream.calidog.io', 443, ssl=ssl_context) loop.run_until_complete(coro) loop.run_forever() except KeyboardInterrupt: loop.stop() loop.close()