Websocket to obtain Order Status
-
@admin said in Websocket to obtain Order Status:
Im aware that documentation exist for a long time.. but what we are asking is a working example..
-
@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.
-
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..
-
HI @rajanprabu ok we report this to the team and update you.
-
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
-
HI @techs @rajanprabu we have passed the requirement to the team to add the working example we will soon make it available to you.
-
Thanks for the prompt response.. This would be of big help.
-
Any update on this ? Any example code or ordering updates via data sockets ?
-
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.
-
@admin Thanks of the update..
-
HI @rajanprabu Let us know when can we connect with you so that we can brief you on the requirement.
-
@admin I fixed it myself. Thanks.
-
@admin Which Package to Install in python for WebSocket, the modulename please
e.g pip install ..... ?
-
HI @webseos please find it below:
pip install smartapi-python
pip install websocket-client -
@rajanprabu Were you able to solve the issue and get the order update. can you please share the sample code if possible.