Navigation

    SmartAPI Forum
    • Register
    • Login
    • Search
    • Categories
    • Popular
    • Groups
    • FAQs
    • API Docs

    Attempting to resubscribe/reconnect

    Python SDK
    0
    1
    45
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      sumitd1982 last edited by

      Hi Moderator,
      I used the below code from the github and getting the below error. Please advise
      W 240404 23:07:05 smartWebSocketV2:319]
      Attempting to resubscribe/reconnect (Attempt 1)...
      Attempting to resubscribe/reconnect (Attempt 2)...
      [E 240404 23:07:25 265206087:58] Connection closed
      [W 240404 23:07:25 smartWebSocketV2:343] Connection closed due to max retry attempts reached.

      For your reference, please find the code below:

      from SmartApi.smartWebSocketV2 import SmartWebSocketV2
      from logzero import logger
      from SmartApi import SmartConnect #or from SmartApi.smartConnect import SmartConnect
      from logzero import logger
      import pyotp

      correlation_id = "abc123"

      action = 1

      mode = 1

      AUTH_TOKEN = "Enter auth token here"
      API_KEY = "Enter API Key here"
      CLIENT_CODE = "S1003394"
      correlation_id = "abc123"
      pwd="Enter Pin here"
      action = 1
      mode = 1
      smartApi = SmartConnect(API_KEY)
      totp = pyotp.TOTP(AUTH_TOKEN).now()
      FEED_TOKEN=smartApi.generateSession(CLIENT_CODE, pwd, totp)

      token_list = [
      {
      "exchangeType": 1,
      "tokens": ["39011"]
      }
      ]
      #retry_strategy=0 for simple retry mechanism
      sws = SmartWebSocketV2(AUTH_TOKEN, API_KEY, CLIENT_CODE, FEED_TOKEN,max_retry_attempt=2)

      #retry_strategy=1 for exponential retry mechanism

      sws = SmartWebSocketV2(AUTH_TOKEN, API_KEY, CLIENT_CODE, FEED_TOKEN,max_retry_attempt=3, retry_strategy=1, retry_delay=10,retry_multiplier=2, retry_duration=30)

      def on_data(wsapp, message):
      logger.info("Ticks: {}".format(message))
      # close_connection()

      def on_control_message(wsapp, message):
      logger.info(f"Control Message: {message}")

      def on_open(wsapp):
      logger.info("on open")
      some_error_condition = False
      if some_error_condition:
      error_message = "Simulated error"
      if hasattr(wsapp, 'on_error'):
      wsapp.on_error("Custom Error Type", error_message)
      else:
      sws.subscribe(correlation_id, mode, token_list)
      # sws.unsubscribe(correlation_id, mode, token_list1)

      def on_error(wsapp, error):
      logger.error(error)

      def on_close(wsapp):
      logger.info("Close")

      def close_connection():
      sws.close_connection()

      Assign the callbacks.

      sws.on_open = on_open
      sws.on_data = on_data
      sws.on_error = on_error
      sws.on_close = on_close
      sws.on_control_message = on_control_message

      sws.connect()

      from SmartApi.smartWebSocketV2 import SmartWebSocketV2
      from logzero import logger
      from SmartApi import SmartConnect #or from SmartApi.smartConnect import SmartConnect
      from logzero import logger
      import pyotp

      correlation_id = "abc123"

      action = 1

      mode = 1

      AUTH_TOKEN = "Enter auth token here"
      API_KEY = "Enter API Key here"
      CLIENT_CODE = "S1003394"
      correlation_id = "abc123"
      pwd="Enter Pin here"
      action = 1
      mode = 1
      smartApi = SmartConnect(API_KEY)
      totp = pyotp.TOTP(AUTH_TOKEN).now()
      FEED_TOKEN=smartApi.generateSession(CLIENT_CODE, pwd, totp)

      token_list = [
      {
      "exchangeType": 1,
      "tokens": ["39011"]
      }
      ]
      #retry_strategy=0 for simple retry mechanism
      sws = SmartWebSocketV2(AUTH_TOKEN, API_KEY, CLIENT_CODE, FEED_TOKEN,max_retry_attempt=2)

      #retry_strategy=1 for exponential retry mechanism

      sws = SmartWebSocketV2(AUTH_TOKEN, API_KEY, CLIENT_CODE, FEED_TOKEN,max_retry_attempt=3, retry_strategy=1, retry_delay=10,retry_multiplier=2, retry_duration=30)

      def on_data(wsapp, message):
      logger.info("Ticks: {}".format(message))
      # close_connection()

      def on_control_message(wsapp, message):
      logger.info(f"Control Message: {message}")

      def on_open(wsapp):
      logger.info("on open")
      some_error_condition = False
      if some_error_condition:
      error_message = "Simulated error"
      if hasattr(wsapp, 'on_error'):
      wsapp.on_error("Custom Error Type", error_message)
      else:
      sws.subscribe(correlation_id, mode, token_list)
      # sws.unsubscribe(correlation_id, mode, token_list1)

      def on_error(wsapp, error):
      logger.error(error)

      def on_close(wsapp):
      logger.info("Close")

      def close_connection():
      sws.close_connection()

      Assign the callbacks.

      sws.on_open = on_open
      sws.on_data = on_data
      sws.on_error = on_error
      sws.on_close = on_close
      sws.on_control_message = on_control_message

      sws.connect()

      1 Reply Last reply Reply Quote 0
      • First post
        Last post