mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-20 07:14:20 +01:00
websocket: add disconnect and stoppd event
This commit is contained in:
@@ -38,6 +38,8 @@ class GenericWebsocket:
|
||||
self.loop = loop or asyncio.get_event_loop()
|
||||
self.events = EventEmitter(
|
||||
scheduler=asyncio.ensure_future, loop=self.loop)
|
||||
# overide 'error' event to stop it raising an exception
|
||||
self.events.on('error', self.on_error)
|
||||
self.ws = None
|
||||
self.max_retries = max_retries
|
||||
|
||||
@@ -72,6 +74,7 @@ class GenericWebsocket:
|
||||
await self._connect(host)
|
||||
retries = 0
|
||||
except (ConnectionClosed, socket.error) as e:
|
||||
self._emit('disconnected')
|
||||
self.logger.error(str(e))
|
||||
retries += 1
|
||||
# wait 5 seconds befor retrying
|
||||
@@ -79,6 +82,7 @@ class GenericWebsocket:
|
||||
await asyncio.sleep(5)
|
||||
self.logger.info("Reconnect attempt {}/{}".format(retries, self.max_retries))
|
||||
self.logger.info("Unable to connect to websocket.")
|
||||
self._emit('stopped')
|
||||
|
||||
def remove_all_listeners(self, event):
|
||||
"""
|
||||
@@ -111,11 +115,10 @@ class GenericWebsocket:
|
||||
On websocket error print and fire event
|
||||
"""
|
||||
self.logger.error(error)
|
||||
self.events.emit('error', error)
|
||||
|
||||
async def on_close(self):
|
||||
"""
|
||||
On websocket close print and fire event
|
||||
On websocket close print and fire event. This is used by the data server.
|
||||
"""
|
||||
self.logger.info("Websocket closed.")
|
||||
await self.ws.close()
|
||||
|
||||
Reference in New Issue
Block a user