Python Streaming Tick Data Problem.
-
@dorje I have modified the webSocket.py file code so it is now returning the parsable response and you can get data from it. Below is the code if you are interested and don't want to wait for the development team to fix it. You just need to replace _parse_text_message() function from env/lib/python3/site-packages/smartapi/webSocket.py file with below code. This will return dict.
def _parse_text_message(self, payload): """Parse text message.""" # Decode unicode data if not six.PY2 and type(payload) == bytes: payload = payload.decode("utf-8") data = base64.b64decode(payload) try: data = bytes((zlib.decompress(data)).decode("utf-8"), 'utf-8') data = json.loads(data.decode('utf8').replace("'", '"')) data = json.loads(json.dumps(data, indent=4, sort_keys=True)) except ValueError: return self.on_ticks(self, data)
-
@rjbanna said in Python Streaming Tick Data Problem.:
data = bytes((zlib.decompress(data)).decode("utf-8"), 'utf-8')
thankyou @rjbanna now it is working
-
@rjbanna Our development team should fix web socket disconnection issue by tomorrow. If it is fixed during the day, I'll share an update here.
-
As these APIs are in Beta Release. & A Beta phase generally begins when the software is feature complete but likely to contain a number of known or unknown bugs. So we are likely to identify some known/unknown bugs.
-
Hi @admin ,
Any update regarding this issue?
-
-
-
Hi @admin ,
Tried WebSocket connection but got disconnected to socket after 5 minutes.
Below is the error which I got in my NodeJS SDK.close:: CloseEvent {target: WebSocket, type: 'close', wasClean: true, reason: '', code: 1000} arg1: CloseEvent {target: WebSocket, type: 'close', wasClean: true, reason: '', code: 1000} code: 1000 reason: '' target: WebSocket {_events: {…}, _eventsCount: 4, _maxListeners: undefined, _binaryType: 'nodebuffer', _closeCode: 1000} _binaryType: 'nodebuffer' _bufferedAmount: 0 _closeCode: 1000 _closeFrameReceived: true _closeFrameSent: true _closeMessage: '' _closeTimer: Timeout {_called: false, _idleTimeout: -1, _idlePrev: null, _idleNext: null, _idleStart: 317581} _events: {open: ƒ, message: ƒ, error: ƒ, close: ƒ} _eventsCount: 4 _extensions: {permessage-deflate: PerMessageDeflate} _isServer: false _maxListeners: undefined _protocol: '' _readyState: 3 _receiver: Receiver {_writableState: WritableState, writable: false, _events: {…}, _eventsCount: 0, _maxListeners: undefined} _redirects: 0 _req: null _sender: Sender {_extensions: {…}, _socket: TLSSocket, _firstFragment: true, _compress: false, _bufferedBytes: 0} _socket: TLSSocket {_tlsOptions: {…}, _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true} _url: 'wss://omnefeeds.angelbroking.com/NestHtml5Mobile/socket/stream' get binaryType: ƒ binaryType() {\n return this._binaryType;\n } set binaryType: ƒ binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n } get bufferedAmount: ƒ bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n } get extensions: ƒ extensions() {\n return Object.keys(this._extensions).join();\n } get onclose: ƒ get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n } set onclose: ƒ set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n } get onerror: ƒ get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n } set onerror: ƒ set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n } get onmessage: ƒ get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n } set onmessage: ƒ set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n } get onopen: ƒ get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n } set onopen: ƒ set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n } get protocol: ƒ protocol() {\n return this._protocol;\n } get readyState: ƒ readyState() {\n return this._readyState;\n } get url: ƒ url() {\n return this._url;\n } __proto__: EventEmitter type: 'close' wasClean: true __proto__: Event
-
@admin I'm still facing the websocket disconnection issue after 10 minutes for Python SDK
-
@admin hi admin now it working fine.
-
@rjbanna Ohh.. that was the reason, no wonder I was not able to save data in list or anything.
-
@dorje Can i get this code please, I have been trying alot, but only getting above three lines and not feed..