Add session to event fired

pull/8/head
Nicolas Jouanin 2015-08-18 20:56:06 +02:00
rodzic 18cba2f53d
commit db79e460d3
2 zmienionych plików z 11 dodań i 7 usunięć

Wyświetl plik

@ -495,12 +495,12 @@ class Broker:
if self.authenticate(client_session):
connack = ConnackPacket.build(client_session.parent, CONNECTION_ACCEPTED)
self.logger.info('%s : connection accepted' % format_client_message(session=client_session))
yield from self.plugins_manager.fire_event(EVENT_MQTT_PACKET_SENT, packet=connack)
yield from self.plugins_manager.fire_event(EVENT_MQTT_PACKET_SENT, packet=connack, session=client_session)
yield from connack.to_stream(writer)
else:
connack = ConnackPacket.build(client_session.parent, NOT_AUTHORIZED)
self.logger.info('%s : connection refused' % format_client_message(session=client_session))
yield from self.plugins_manager.fire_event(EVENT_MQTT_PACKET_SENT, packet=connack)
yield from self.plugins_manager.fire_event(EVENT_MQTT_PACKET_SENT, packet=connack, session=client_session)
yield from connack.to_stream(writer)
yield from writer.close()
return

Wyświetl plik

@ -38,8 +38,8 @@ class ClientContext(BaseContext):
ClientContext is used as the context passed to plugins interacting with the client.
It act as an adapter to client services from plugins
"""
def __init__(self, loop=None):
super().__init__(loop)
def __init__(self, client):
super().__init__(client.loop)
class MQTTClient:
@ -89,7 +89,7 @@ class MQTTClient:
self._connection_closed_future = None
# Init plugins manager
self.plugins_manager = PluginManager('hbmqtt.client', ClientContext(self._loop), self._loop)
self.plugins_manager = PluginManager('hbmqtt.client', ClientContext(self))
@asyncio.coroutine
@ -253,10 +253,14 @@ class MQTTClient:
try :
connect_packet = self.build_connect_packet()
yield from connect_packet.to_stream(writer)
yield from self.plugins_manager.fire_event(EVENT_MQTT_PACKET_SENT, packet=connect_packet)
yield from self.plugins_manager.fire_event(EVENT_MQTT_PACKET_SENT,
packet=connect_packet,
session=self.session)
connack = yield from ConnackPacket.from_stream(reader)
yield from self.plugins_manager.fire_event(EVENT_MQTT_PACKET_RECEIVED, packet=connack)
yield from self.plugins_manager.fire_event(EVENT_MQTT_PACKET_RECEIVED,
packet=connack,
session=self.session)
return_code = connack.variable_header.return_code
except Exception as e:
self.logger.warn("connection failed: %s" % e)