Lightstreamer Client SDK
Lightstreamer Python Client SDK
Lightstreamer Python Client SDK enables any Python application to communicate bidirectionally with a Lightstreamer Server. The API allows to subscribe to real-time data pushed by the server and to send any message to the server.
The library offers automatic recovery from connection failures, automatic selection of the best available transport, and full decoupling of subscription and connection operations. It is responsible of forwarding the subscriptions to the Server and re-forwarding all the subscriptions whenever the connection is broken and then reopened.
You can install the Lightstreamer Client SDK from PyPI:
python -m pip install lightstreamer-client-lib
The sdk is supported on Python 3.9 and above.
To connect to a Lightstreamer Server, a LightstreamerClient object has to be created, configured, and instructed to connect to the Lightstreamer Server. A minimal version of the code that creates a LightstreamerClient and connects to the Lightstreamer Server on https://push.lightstreamer.com will look like this:
from lightstreamer_client import * client = LightstreamerClient("http://push.lightstreamer.com/","DEMO") client.connect()
For each subscription to be subscribed to a Lightstreamer Server a Subscription instance is needed. A simple Subscription containing three items and two fields to be subscribed in MERGE mode is easily created (see Lightstreamer General Concepts):
sub = Subscription("MERGE",["item1","item2","item3"],["stock_name","last_price"]) sub.setDataAdapter("QUOTE_ADAPTER") sub.setRequestedSnapshot("yes") client.subscribe(sub)
Before sending the subscription to the server, usually at least one SubscriptionListener is attached to the Subscription instance in order to consume the real-time updates. The following code shows the values of the fields stock_name and last_price each time a new update is received for the subscription:
class SubListener: def onItemUpdate(self, update): print("UPDATE " + update.getValue("stock_name") + " " + update.getValue("last_price")) # other methods... sub.addListener(SubListener())
Below is the complete Python code:
from lightstreamer_client import * sub = Subscription("MERGE",["item1","item2","item3"],["stock_name","last_price"]) sub.setDataAdapter("QUOTE_ADAPTER") sub.setRequestedSnapshot("yes") class SubListener: def onItemUpdate(self, update): print("UPDATE " + update.getValue("stock_name") + " " + update.getValue("last_price")) def onListenStart(self, aSub): pass def onClearSnapshot(self, itemName, itemPos): pass def onCommandSecondLevelItemLostUpdates(self, lostUpdates, key): pass def onCommandSecondLevelSubscriptionError(self, code, message, key): pass def onEndOfSnapshot(self, itemName, itemPos): pass def onItemLostUpdates(self, itemName, itemPos, lostUpdates): pass def onListenEnd(self, subscription): pass def onListenStart(self, subscription): pass def onSubscription(self): pass def onSubscriptionError(self, code, message): pass def onUnsubscription(self): pass def onRealMaxFrequency(self, frequency): pass sub.addListener(SubListener()) client = LightstreamerClient("http://push.lightstreamer.com","DEMO") client.subscribe(sub) client.connect()
loggerProvider = ConsoleLoggerProvider(ConsoleLogLevel.DEBUG) LightstreamerClient.setLoggerProvider(loggerProvider)
Compatible with Lightstreamer Server since version 7.2.0.
For questions and support please use the Official Forum. The issue list of this page is exclusively for bug reports and feature requests.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for lightstreamer-client-lib-1.0.0b2.tar.gz
Hashes for lightstreamer_client_lib-1.0.0b2-py3-none-any.whl