Commit ceb807c
committed
Implement an error callback and arrange for reconnection
* Splits the `setup()` method into separate `connect()` and `listen()` methods.
* Adjust the `connect()` and `close()` methods so that the websocket may be reconnected and stay active.
* Adds an `on_error()` callback that is invoked in the `except` block of `listen()` with default behavior of closing the connection.
* Makes WebSocketClient a new-style class.
These changes together are intended to make it possible to reconnect a disconnected client using an `on_error()` override like this:
```
def on_error(self, e):
if isinstance(e, WebSocketConnectionClosedException):
while not self.stop:
try:
self.close()
self.connect()
except Exception as e:
logger.error(repr(e))
else:
break
else:
logger.error(repr(e))
```1 parent 6ddf4f2 commit ceb807c
1 file changed
Lines changed: 17 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | 17 | | |
19 | | - | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
20 | 24 | | |
21 | 25 | | |
22 | | - | |
| 26 | + | |
23 | 27 | | |
| 28 | + | |
24 | 29 | | |
25 | 30 | | |
26 | 31 | | |
27 | 32 | | |
28 | 33 | | |
29 | 34 | | |
30 | 35 | | |
31 | | - | |
32 | 36 | | |
33 | 37 | | |
34 | 38 | | |
| |||
38 | 42 | | |
39 | 43 | | |
40 | 44 | | |
41 | | - | |
42 | | - | |
| 45 | + | |
43 | 46 | | |
44 | 47 | | |
45 | 48 | | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
46 | 52 | | |
47 | 53 | | |
48 | 54 | | |
49 | 55 | | |
50 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
51 | 60 | | |
52 | 61 | | |
53 | 62 | | |
| |||
0 commit comments