Обработчик веб-сокета Tornado, self.close () закрывает соединение, не вызывая метод on_close ()

Я новичок в (python, stackoverflow, tornado), поэтому, пожалуйста, будьте терпеливы :). Исправь меня.

Я работаю с торнадо в приложении в реальном времени. Когда я вызываю self.close () внутри класса обработчика Websocket, метод on_close не запускается, на этот раз я сделал небольшую оболочку, исправив проблему и (например) отбросив этого подключенного агента (чистый avascript wss api клиент) правильно.

Все проблемы с сетью отбрасываются, так как мой плохой упаковщик работает хорошо, и я нахожусь в среде локальной сети.

у кого-то такая же проблема? Я не могу спать без объяснения причин.

СПАСИБО, правда.

## imports and other stuff 

AGENTS = set()     

class BackofficeWSSRailMain(tornado.websocket.WebSocketHandler):   

     def on_open(self):                  
       pass

     def on_message(self,raw_message):
       json_msg=json.loads(raw_message)
       login = function_that_process_login(json_msg)

       if login == True:
          AGENTS.add(self)
          self.write_message("ok")         
       else:
          self.write_message("nologin")
          self.close()         ### this part should fireup 
                               ### the on_close method but nothing 
                               ### happens so AGENT is not discarded.
                               ### here is when i actually call on_close_wrapper(),
                               ### the method below. 

     def on_close_wrapper(self):

       self.close()            ### this is my actual solution , 
                               ### waiting for more research.
       self.on_close()

     def on_close(self):      

       AGENTS.discard(self)

   ## Calling ioloop ...