Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions sample/stream_ig.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import sys
import logging
from datetime import datetime

from lightstreamer.client import (
LightstreamerClient,
Subscription,
ConsoleLoggerProvider,
ConsoleLogLevel,
SubscriptionListener,
ItemUpdate,
ClientListener,
)

from trading_ig import IGService, IGStreamService
Expand All @@ -16,8 +15,6 @@

logger = logging.getLogger(__name__)

loggerProvider = ConsoleLoggerProvider(ConsoleLogLevel.INFO)
LightstreamerClient.setLoggerProvider(loggerProvider)

logging.basicConfig(
stream=sys.stdout,
Expand Down Expand Up @@ -88,6 +85,9 @@ def ig_stream_sample():
# registering the TRADE subscription
ig_stream_service.subscribe(trade_subscription)

# adding a ClientListener
ig_stream_service.add_client_listener(StatusListener())

# await updates
wait_for_input()

Expand Down Expand Up @@ -159,5 +159,10 @@ def onUnsubscription(self):
logger.info("TradeListener onUnsubscription()")


class StatusListener(ClientListener):
def onStatusChange(self, status):
print(f"{datetime.now()}: ***** {status} *****")


if __name__ == "__main__":
ig_stream_sample()
8 changes: 7 additions & 1 deletion trading_ig/stream.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import traceback
import logging

from lightstreamer.client import LightstreamerClient, Subscription
from lightstreamer.client import LightstreamerClient, Subscription, ClientListener

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -56,6 +56,12 @@ def unsubscribe_all(self):
for sub in subscriptions:
self.ls_client.unsubscribe(sub)

def add_client_listener(self, listener: ClientListener):
self.ls_client.addListener(listener)

def remove_client_listener(self, listener: ClientListener):
self.ls_client.removeListener(listener)

def disconnect(self):
self.unsubscribe_all()
self.ls_client.disconnect()