def dataReceived(self, data): self.buffer += data if not self.hello_received: try: resp, self.buffer = parse.parse_start(self.buffer, first=True) except parse.NotReadyError: return # Haven't received enough data yet self.hello_received = True self.size = resp.size self.event_sink.response(resp) try: while True: resp, self.buffer = parse.parse_start(self.buffer, self.size) self.event_sink.response(resp) except parse.NotReadyError: return