Navigation

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

    Websocket to obtain Order Status

    Python SDK
    6
    23
    347
    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
      Surya 1 @admin last edited by

      @admin said in Websocket to obtain Order Status:

      https://smartapi.angelbroking.com/docs/WebSocketOrderStatus

      Im aware that documentation exist for a long time.. but what we are asking is a working example..

      S 1 Reply Last reply Reply Quote 0
      • S
        Surya 1 @Surya 1 last edited by

        @techs @Ayush-Kumar @SmartAPI_Angel @admin @Ashok

        here is what I have quickly tried

        Try1: using asyncio

        import websockets 
        import asyncio 
        import json
        
        with open('/Users/prabu/Angel_Broking/ab.json') as f:
            data = json.load(f)
        client_code = data['client_code']
        api_key = data['api_key']
        
        with open('/Users/prabu/Angel_Broking/ab_tokens.json') as f:
            data = json.load(f)
        feed_token = str(data['feedToken'])
        access_token = data['jwtToken']
        refreshToken = data['refreshToken']
        
        ws_request = {
             "actiontype" : "subscribe",
             "feedtype" : "order_feed",
             "jwttoken" : access_token,
             "clientcode" : client_code,
             "apikey" : api_key
        }
        
        async def listen(jwttoken, client_id, api_key,ws_request ) :
            
            url = "wss://smartapisocket.angelbroking.com/websocket?jwttoken=" + jwttoken + "&&clientcode=" + client_id + "&&apikey=" + api_key
            async with websockets.connect(url) as ws:
                # await ws.send(ws_request)
                
                msg = await ws.recv()
                print (msg)
        
        asyncio.get_event_loop().run_until_complete(listen(access_token, client_code, api_key, ws_request))
        

        Try 2 : using websocket package

        import websocket 
        import json
        
        
        with open('/Users/prabu/Angel_Broking/ab.json') as f:
            data = json.load(f)
        client_code = data['client_code']
        api_key = data['api_key']
        
        with open('/Users/prabu/Angel_Broking/ab_tokens.json') as f:
            data = json.load(f)
        feed_token = str(data['feedToken'])
        access_token = data['jwtToken']
        refreshToken = data['refreshToken']
        
        ws_request = {
             "actiontype": "heartbeat",
             "feedtype": "order_feed",
             "jwttoken": access_token,
             "clientcode": client_code,
             "apikey": api_key
        }
        
        def on_msg(ws, msg):
            print(msg)
           
        def on_connect(ws, response,request=ws_request):
            print ( response)
            ws.send(request)
            
        def on_close(ws, code, reason):
            ws.stop()
        
        url = "wss://smartapisocket.angelbroking.com/websocket?jwttoken=" + access_token + "&&clientcode=" + client_code + "&&apikey=" + api_key
        # print (url)
        
        ws = websocket.WebSocketApp(url, on_open = on_connect, on_message= on_msg, on_close= on_close)
        ws.run_forever()
        

        But Im not getting any response.. Could you please talk to your team and modify this to be a working example @admin ?

        I know its not perfect and im missing something.. my aim is to provide some base for other users to try out and improve.

        S S 2 Replies Last reply Reply Quote 0
        • S
          Surya 1 @Surya 1 last edited by

          @admin

          why can't you provide order updates via the data websocket like other API providers do. that will make our life so simple..

          just add one more function like

          on_order(ws, msg)
             print ( msg) 
          

          this would be the easiest for anyone rather than fiddling with establishing another websocket connects and send heart beat every minute.. pretty inefficient..

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

            HI @rajanprabu ok we report this to the team and update you.

            S 1 Reply Last reply Reply Quote 0
            • T
              techs @admin last edited by

              Hi @admin and @SmartAPI_Angel ,
              Sample code should be correct and concise code that your readers can quickly understand and easily reuse with minimal side effects.
              The link you have shared is just a Websocket Order Status API documentation which doesn't have any working example code.

              Please share working python code which uses Websocket Order Status API

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

                HI @techs @rajanprabu we have passed the requirement to the team to add the working example we will soon make it available to you.

                S 1 Reply Last reply Reply Quote 0
                • S
                  Surya 1 @admin last edited by

                  @admin

                  Thanks for the prompt response.. This would be of big help.

                  1 Reply Last reply Reply Quote 0
                  • S
                    Surya 1 @admin last edited by

                    @admin

                    Any update on this ? Any example code or ordering updates via data sockets ?

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

                      Hi @rajanprabu As coordinated with the team the example in doc seems to be explanatory to use it. We can connect with you to discuss on this.

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        Surya 1 @admin last edited by

                        @admin Thanks of the update..

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

                          HI @rajanprabu Let us know when can we connect with you so that we can brief you on the requirement.

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            Surya 1 @admin last edited by

                            @admin I fixed it myself. Thanks.

                            1 Reply Last reply Reply Quote 0
                            • W
                              webseos @admin last edited by

                              @admin Which Package to Install in python for WebSocket, the modulename please

                              e.g pip install ..... ?

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

                                HI @webseos please find it below:
                                pip install smartapi-python
                                pip install websocket-client

                                1 Reply Last reply Reply Quote 0
                                • S
                                  simran.munshi @Surya 1 last edited by

                                  @rajanprabu Were you able to solve the issue and get the order update. can you please share the sample code if possible.

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