source: geniuswebcore/geniusweb/profileconnection/WebSocketClient.py@ 85

Last change on this file since 85 was 84, checked in by Bart Vastenhouw, 3 years ago

Added time-dependent parties for python and simpleRunner-GUI for java

File size: 1018 bytes
RevLine 
[84]1from abc import ABC, abstractmethod
2
3from geniusweb.profileconnection.Session import Session
4
5
6class WebSocketClient(ABC):
7 '''
8 Interface for client listening to websocket events.
9 This basically hides the python websocket app,
10 so that we can ensure the functions are implemented
11 and allows us to pass mock clients.
12 '''
13 @abstractmethod
14 def onOpen(self, session:Session):
15 '''
16 called when the socket opens. Clients should store the session
17 '''
18 @abstractmethod
19 def onClose(self):
20 '''
21 called when session closes.
22 '''
23
24 @abstractmethod
25 def onMessage(self, text:str):
26 '''
27 called when message comes for the client
28 '''
29 @abstractmethod
30 def onError(self, error:BaseException):
31 '''
32 @param error the error that occured
33 '''
34
35 @abstractmethod
36 def close(self):
37 '''
38 When this is called, the client should close and free its resources.
39 '''
Note: See TracBrowser for help on using the repository browser.