Example #1
0
 def run(self):
     starttime = time.time()
     with self.terminator():
         while True:
             if self.ws_read_limit == 0:
                 return
             try:
                 r, _, _ = select.select([self.rfile], [], [], 0.05)
             except OSError:  # pragma: no cover
                 return  # this is not reliably triggered due to its nature, so we exclude it from coverage.
             delta = time.time() - starttime
             if not r and self.timeout and delta > self.timeout:
                 return
             try:
                 self.terminate.get_nowait()
                 return
             except queue.Empty:
                 pass
             for rfile in r:
                 with self.logger.ctx() as log:
                     try:
                         frm = websockets.Frame.from_file(self.rfile)
                     except exceptions.TcpDisconnect:
                         return
                     self.frames_queue.put(frm)
                     log("<< %s" % repr(frm.header))
                     if self.ws_read_limit is not None:
                         self.ws_read_limit -= 1
                     starttime = time.time()
Example #2
0
 def run(self):
     starttime = time.time()
     with self.terminator():
         while True:
             if self.ws_read_limit == 0:
                 return
             try:
                 r, _, _ = select.select([self.rfile], [], [], 0.05)
             except OSError:
                 return
             delta = time.time() - starttime
             if not r and self.timeout and delta > self.timeout:
                 return
             try:
                 self.terminate.get_nowait()
                 return
             except queue.Empty:
                 pass
             for rfile in r:
                 with self.logger.ctx() as log:
                     try:
                         frm = websockets.Frame.from_file(self.rfile)
                     except exceptions.TcpDisconnect:
                         return
                     self.frames_queue.put(frm)
                     log("<< %s" % repr(frm.header))
                     if self.ws_read_limit is not None:
                         self.ws_read_limit -= 1
                     starttime = time.time()
Example #3
0
 def run(self):
     starttime = time.time()
     with self.terminator():
         while True:
             if self.ws_read_limit == 0:
                 return
             r, _, _ = select.select([self.rfile], [], [], 0.05)
             delta = time.time() - starttime
             if not r and self.timeout and delta > self.timeout:
                 return
             try:
                 self.terminate.get_nowait()
                 return
             except queue.Empty:
                 pass
             for rfile in r:
                 with self.logger.ctx() as log:
                     try:
                         frm = websockets.Frame.from_file(self.rfile)
                     except exceptions.TcpDisconnect:
                         return
                     self.frames_queue.put(frm)
                     log("<< %s" % frm.header.human_readable())
                     if self.ws_read_limit is not None:
                         self.ws_read_limit -= 1
                     starttime = time.time()