docs: def _listen(sockets):
      """Main server loop. Listens for incoming events and dispatches them to appropriate chatroom"""
      while True:
          (i , o, e) = select.select(sockets.keys(),[],[],1)
          for socket in i:
              if isinstance(sockets[socket], Chatroom):
                  data_len = sockets[socket].client.Process(1)
                  if data_len is None or data_len == 0:
                      raise Exception('Disconnected from server')
              #elif sockets[socket] == 'stdio':
              #    msg = sys.stdin.readline().rstrip('\r\n')
              #    logger.info('stdin: [%s]' % (msg,))
              else:
                  raise Exception("Unknown socket type: %s" % repr(sockets[socket]))