Navigation

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

    User Feedback - WebSocket 2.0 Beta Rollout – Python Language

    Python SDK
    0
    45
    2246
    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.
    • A
      abhinay.j last edited by

      @admin and team and forum members

      Request you to post a final working working Websocket 2.0 code as i am still not able to get any ticks even after doing all the changes discussed above.

      Thank you.

      1 Reply Last reply Reply Quote 0
      • S
        sathyaraj last edited by

        How to handle ws disconnection?
        Do we need to Initialize ws again or it handles reconnection?
        I am getting the following error sometimes

        ERROR - Handshake status 429 Too Many Requests - goodbye
        ERROR - error from callback <bound method SmartWebSocketV2._on_close of <SmartWebsocketv2.SmartWebSocketV2 object at 0x000001D5D1637750>>: SmartWebSocketV2._on_close() takes 2 positional arguments but 4 were given
        ERROR - [WinError 10054] An existing connection was forcibly closed by the remote host - goodbye
        ERROR - error from callback <bound method SmartWebSocketV2._on_close of <SmartWebsocketv2.SmartWebSocketV2 object at 0x000001D5D1637750>>: SmartWebSocketV2._on_close() takes 2 positional arguments but 4 were given

        A 1 Reply Last reply Reply Quote 0
        • D
          DIYD57519 @admin last edited by

          @admin
          This script i not working. No error, nothing happens, It times out. Why ?
          I have tried many a times today.

          Code below:

          from SmartApi.smartWebSocketV2 import SmartWebSocketV2
          from smartapi import SmartConnect
          import pyotp

          obj=SmartConnect(api_key="") # feed app API key.
          #optional
          #access_token = "your access token",
          #refresh_token = "your refresh_token")
          #login api call
          token='
          '

          Login needs to be done through MPIN now.

          data = obj.generateSession("","",pyotp.TOTP(token).now())
          print(data)
          refreshToken= data['data']['refreshToken']
          jwt_token = data['data']['jwtToken']

          	#fetch the feedtoken
          

          feedToken=obj.getfeedToken()

          AUTH_TOKEN = jwt_token
          API_KEY = ******* #feed app API key
          CLIENT_CODE = '*******'
          FEED_TOKEN = feedToken

          correlation_id = "Testing"
          action = 1
          mode = 3

          token_list = [{"exchangeType": 1, "tokens": ["26009","11536","1594","2885"]}]

          sws = SmartWebSocketV2(AUTH_TOKEN, API_KEY, CLIENT_CODE, FEED_TOKEN)

          def on_data(wsapp, message):
          print("Ticks: {}".format(message))

          def on_open(wsapp):
          print("on open")

          sws.subscribe(correlation_id, mode, token_list)
          

          def on_error(wsapp, error):
          print(error)

          def on_close(wsapp):
          print("Close")

          Assign the callbacks.

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

          sws.connect()


          Rsult:

          on open

          J 1 Reply Last reply Reply Quote 0
          • D
            DIYD57519 @J88913 last edited by

            @J88913 dont install SmartApi. download and keep it in the same folder as program

            1 Reply Last reply Reply Quote 0
            • A
              admin @krunal96 last edited by admin

              Hi @Javajp @vishant @whemant @Kiran @Narendra_Javvadi @vrkhyd @zubuco @N399438

              We are excited to announce the release of updated SmartAPI libraries that now fully support WebSocket 2.0, further enhancing your trading experience. The latest versions of the SmartAPI Python SDK (1.3.4), SmartAPI Java SDK (2.1.0) and the SmartAPI Node.js Library (1.0.15) incorporate WebSocket 2.0 implementation, ensuring faster market data updates, reduced latency, and improved overall performance.

              https://smartapi.angelbroking.com/topic/3660/upgraded-smartapi-libraries-to-support-websocket-2-0-python-java-sdk-and-node-js-library

              1 Reply Last reply Reply Quote 0
              • D
                dharm @smitshahfo last edited by

                @vrkhyd how can you get the live data?
                I am facing the same issue

                1 Reply Last reply Reply Quote 1
                • S
                  smitshahfo @whemant last edited by

                  @whemant Hi,
                  send a mail to vemula.ramkishore@gmail.com

                  1 Reply Last reply Reply Quote 0
                  • D
                    dharm @Ankita last edited by

                    @Ankita do you get any solution on this issue?
                    If Yes so help me

                    L 1 Reply Last reply Reply Quote 0
                    • L
                      Linux Smiths @dharm last edited by

                      @dharm change the function as following

                      @staticmethod
                      def _parse_token_value(binary_packet):
                          token = ""
                          binary_packet = binary_packet.decode("UTF-8")
                          for i in range(len(binary_packet)):
                              if binary_packet[i] == '\x00':
                                  return token
                              token += str(binary_packet[i])
                          return token
                      
                      1 Reply Last reply Reply Quote 0
                      • L
                        Linux Smiths last edited by

                        What is total_buy_quantity and total_sell_quantity?
                        When are they different? I mean whatever is bought is sold as well. Thanks.

                        L 1 Reply Last reply Reply Quote 0
                        • L
                          Linux Smiths @Linux Smiths last edited by

                          nvm, I gather that this is the amount of pending buy and sell orders at the Exchange.

                          1 Reply Last reply Reply Quote 0
                          • A
                            ashigro @sathyaraj last edited by

                            @sathyaraj
                            We can fix this error by updating _on_close method with additional arguments in SmartWebSocketV2.py file.

                            def _on_close(self, wsapp**, close_status_code, close_msg**):

                            <Error: SmartWebSocketV2._on_close() takes 2 positional arguments but 4 were given>
                            This error is thrown because on_close method of websocket class takes multiple arguments which are missing in SmartWebSocket library. Example code:
                            https://websocket-client.readthedocs.io/en/latest/examples.html

                            1 Reply Last reply Reply Quote 0
                            • J
                              jaideep siddula @DIYD57519 last edited by

                              @DIYD57519 Im no getting on open. Instead, I'm getting "attempting to resubscibe/reconnect". Any help is appreciated.
                              Thanks in advance

                              D 2 Replies Last reply Reply Quote 1
                              • D
                                DiljotSingh11 @jaideep siddula last edited by

                                Hi @jaideep-siddula , I'm also having the same issue, have you found the solution?

                                1 Reply Last reply Reply Quote 1
                                • D
                                  DiljotSingh11 @jaideep siddula last edited by

                                  @jaideep-siddula @DIYD57519, I'm also getting "attempting to resubscibe/reconnect", is there any solution, as I've drilled a bit and got Handshake status 404 not found.

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