def on_close(self): if self.id in self._CLIENTS: self._CLIENTS.pop(self.id) for name, obj in iteritems(self.__handlers): self.ioloop.add_callback(obj._onclose) log.info('Client "{0}" disconnected'.format(self.id))
def write_tags(self, tags): for key, value in iteritems(tags): value = xml.sax.saxutils.quoteattr(value) self.output.write(('\t\t<tag k="' + key + '" v=' + value + '/>\n' ) #.encode("utf-8") )
def attrs_str(self, attrs): return ("".join([ ' ' + key + '=' + xml.sax.saxutils.quoteattr(value) for key, value in iteritems(attrs) ])) #.encode("utf-8")
def broadcast(cls, func, callback=WebSocketRoute.placebo, **kwargs): ioloop = tornado.ioloop.IOLoop.current() for client_id, client in iteritems(cls._CLIENTS): ioloop.add_callback(client.call, func, callback, **kwargs)