I'm trying some basic stuff for connecting Bitmex testnet websocket. I originally wanted to close the WS connection by exit() function after receiving some data with market_depth() function. But somehow the exit() function didn't work and WS just kept pushing data to me.
But surprising when I ran on debug mode, the exit() function could actually close the WS when I ran the script line-by-line. What is the reason behind? Thanks for helping. Below is the code I use.
ps I'm new to use REST or WS api, hopefully somehow can explain it in detailed
from bitmex_websocket import BitMEXWebsocket
import logging
def run():
    logger = setup_logger()
    ws = BitMEXWebsocket(endpoint="https://testnet.bitmex.com/api/v1", symbol="XBTUSD",
                         api_key=None, api_secret=None)
    logger.info("Market depth: %s" % ws.market_depth())
    ws.exit()
def setup_logger():
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)  # Change this to DEBUG if you want a lot more info
    ch = logging.StreamHandler()
    formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
    ch.setFormatter(formatter)
    logger.addHandler(ch)
    return logger
if __name__ == "__main__":
    run()