示例#1
0
 def _disconnect(self, receipt=None):
     if self.connected:
         self._client.disconnect(receipt=receipt)
     self._client.close(flush=True)
     self.fire(disconnected(reconnect=False))
     self._subscribed = {}
     return "disconnected"
示例#2
0
 def _disconnect(self, receipt=None):
     if self.connected:
         self._client.disconnect(receipt=receipt)
     self._client.close(flush=True)
     self.fire(disconnected(reconnect=False))
     self._subscribed = {}
     return "disconnected"
示例#3
0
 def send_heartbeat(self, event):
     if self.connected:
         LOG.debug("Sending heartbeat")
         try:
             self._client.beat()
         except StompConnectionError:
             event.success = False
             self.fire(disconnected())
示例#4
0
 def send_heartbeat(self, event):
     if self.connected:
         LOG.debug("Sending heartbeat")
         try:
             self._client.beat()
         except StompConnectionError:
             event.success = False
             self.fire(disconnected())
示例#5
0
 def generate_events(self, event):
     if not self.connected:
         return
     try:
         if self._client.canRead(1):
             frame = self._client.receiveFrame()
             LOG.debug("Recieved frame %s", frame)
             self.fire(message(frame))
     except StompConnectionError:
         self.fire(disconnected())
示例#6
0
 def generate_events(self, event):
     if not self.connected:
         return
     try:
         if self._client.canRead(1):
             frame = self._client.receiveFrame()
             LOG.debug("Recieved frame %s", frame)
             self.fire(message(frame))
     except StompConnectionError:
         self.fire(disconnected())
示例#7
0
 def ack_frame(self, event, frame):
     LOG.debug("ack_frame()")
     try:
         self._client.ack(frame)
         LOG.debug("Ack Sent")
     except StompConnectionError as err:
         LOG.error("Error sending ack")
         event.success = False
         self.fire(disconnected())
     except StompError as err:
         LOG.error("Error sending ack")
         event.success = False
         self.fire(on_stomp_error(frame, err))
示例#8
0
 def ack_frame(self, event, frame):
     LOG.debug("ack_frame()")
     try:
         self._client.ack(frame)
         LOG.debug("Ack Sent")
     except StompConnectionError:
         LOG.error("Error sending ack")
         event.success = False
         self.fire(disconnected())
     except StompError as err:
         LOG.error("Error sending ack")
         event.success = False
         self.fire(on_stomp_error(frame, err))
示例#9
0
 def _unsubscribe(self, event, destination):
     if destination not in self._subscribed:
         LOG.error("Unsubscribe Request Ignored. Not subscribed to %s", destination)
         return
     try:
         token = self._subscribed.pop(destination)
         frame = self._client.unsubscribe(token)
         LOG.debug("Unsubscribed: %s", frame)
     except StompConnectionError as err:
         event.success = False
         self.fire(disconnected())
     except StompError as err:
         LOG.error("Error sending ack")
         event.success = False
         self.fire(on_stomp_error(frame, err))
示例#10
0
 def _unsubscribe(self, event, destination):
     if destination not in self._subscribed:
         LOG.error("Unsubscribe Request Ignored. Not subscribed to %s", destination)
         return
     try:
         token = self._subscribed.pop(destination)
         frame = self._client.unsubscribe(token)
         LOG.debug("Unsubscribed: %s", frame)
     except StompConnectionError:
         event.success = False
         self.fire(disconnected())
     except StompError as err:
         LOG.error("Error sending ack")
         event.success = False
         self.fire(on_stomp_error(frame, err))
示例#11
0
 def _subscribe(self, event, destination, ack=ACK_CLIENT_INDIVIDUAL):
     if ack not in ACK_MODES:
         raise ValueError("Invalid client ack mode specified")
     LOG.info("Subscribe to message destination %s", destination)
     try:
         # Set ID to match destination name for easy reference later
         frame, token = self._client.subscribe(destination,
                                               headers={StompSpec.ACK_HEADER: ack,
                                                        'id': destination})
         self._subscribed[destination] = token
     except StompConnectionError as err:
         event.success = False
         self.fire(disconnected())
     except StompError as err:
         event.success = False
         LOG.debug(traceback.format_exc())
         self.fire(on_stomp_error(None, err))
示例#12
0
 def send(self, event, destination, body, headers=None, receipt=None):
     LOG.debug("send()")
     if not self.connected:
         LOG.error("Can't send when Stomp is disconnected")
         self.fire(on_stomp_error(None, Exception("Message send attempted with stomp disconnected")))
         event.success = False
         return
     try:
         self._client.send(destination, body=body.encode('utf-8'), headers=headers, receipt=receipt)
         LOG.debug("Message sent")
     except StompConnectionError as err:
         event.success = False
         self.fire(disconnected())
     except StompError as err:
         LOG.error("Error sending ack")
         event.success = False
         self.fire(on_stomp_error(None, err))
示例#13
0
 def _subscribe(self, event, destination, ack=ACK_CLIENT_INDIVIDUAL):
     if ack not in ACK_MODES:
         raise ValueError("Invalid client ack mode specified")
     LOG.info("Subscribe to message destination %s", destination)
     try:
         # Set ID to match destination name for easy reference later
         frame, token = self._client.subscribe(destination,
                                               headers={StompSpec.ACK_HEADER: ack,
                                                        'id': destination})
         self._subscribed[destination] = token
     except StompConnectionError:
         event.success = False
         self.fire(disconnected())
     except StompError as err:
         event.success = False
         LOG.debug(traceback.format_exc())
         self.fire(on_stomp_error(None, err))
示例#14
0
 def send(self, event, destination, body, headers=None, receipt=None):
     LOG.debug("send()")
     if not self.connected:
         LOG.error("Can't send when Stomp is disconnected")
         self.fire(on_stomp_error(None, Exception("Message send attempted with stomp disconnected")))
         event.success = False
         return
     try:
         self._client.send(destination, body=body.encode('utf-8'), headers=headers, receipt=receipt)
         LOG.debug("Message sent")
     except StompConnectionError:
         event.success = False
         self.fire(disconnected())
     except StompError as err:
         LOG.error("Error sending ack")
         event.success = False
         self.fire(on_stomp_error(None, err))