def start(self): # parameters require for the AMQP connection: user name and password... credentials = PlainCredentials(RabbitMQConfiguration().getRabbitMQProperty("gameLogicServerUserName"), RabbitMQConfiguration().getRabbitMQProperty("gameLogicServerUserName")) parameters = pika.ConnectionParameters(host=RabbitMQConfiguration().getRabbitMQProperty("gameLogicServerBrokerHost"), virtual_host=self.state.vhost, credentials=credentials) # instantiate a connection connection = SelectConnection(parameters=parameters, on_open_callback=self.on_connected) # required behavior on close connection.add_on_close_callback(self.on_close) # start the connection connection.ioloop.start()
def start(self): # parameters require for the AMQP connection: user name and password... credentials = PlainCredentials( RabbitMQConfiguration().getRabbitMQProperty( "gameLogicServerUserName"), RabbitMQConfiguration().getRabbitMQProperty( "gameLogicServerUserName")) parameters = pika.ConnectionParameters( host=RabbitMQConfiguration().getRabbitMQProperty( "gameLogicServerBrokerHost"), virtual_host=self.state.vhost, credentials=credentials) # instantiate a connection connection = SelectConnection(parameters=parameters, on_open_callback=self.on_connected) # required behavior on close connection.add_on_close_callback(self.on_close) # start the connection connection.ioloop.start()
class Amqp(object): def __init__(self, conf): # RabbitMQ general options self.cacertfile = conf['cacertfile'] self.certfile = conf['certfile'] self.exchange = conf['exchange'] self.status_exchange = conf['status_exchange'] self.fail_if_no_peer_cert = conf['fail_if_no_peer_cert'] self.heartbeat = conf['heartbeat'] self.host = conf['host'] self.keyfile = conf['keyfile'] self.password = conf['password'] self.port = conf['port'] self.ssl_port = conf['ssl_port'] self.queue = conf['uuid'] self.retry_timeout = conf['retry_timeout'] self.ssl_auth = conf['ssl_auth'] self.use_ssl = conf['use_ssl'] self.username = conf['username'] self.vhost = conf['vhost'] # Connection and channel initialization self.connection = None self.channel = None # Plain credentials credentials = PlainCredentials(self.username, self.password) pika_options = {'host': self.host, 'port': self.port, 'virtual_host': self.vhost, 'credentials': credentials} # SSL options if self.use_ssl: pika_options['ssl'] = True pika_options['port'] = self.ssl_port if self.ssl_auth: pika_options['credentials'] = ExternalCredentials() pika_options['ssl_options'] = { 'ca_certs': self.cacertfile, 'certfile': self.certfile, 'keyfile': self.keyfile, 'cert_reqs': CERT_REQUIRED } if self.heartbeat: pika_options['heartbeat'] = self.heartbeat self.parameters = None try: self.parameters = pika.ConnectionParameters(**pika_options) except TypeError as err: self.logger.debug(err) # Let's be compatible with original pika version (no integer for # heartbeats and no ssl. self.logger.warning("Wrong pika lib version, won't use ssl.") pika_options['heartbeat'] = True if self.use_ssl: self.use_ssl = False pika_options['port'] = self.port del pika_options['ssl'] if self.ssl_auth: self.ssl_auth = False del pika_options['ssl_options'] self.parameters = pika.ConnectionParameters(**pika_options) def connect(self): SelectPoller.TIMEOUT = .1 self.connection = SelectConnection(self.parameters, self.on_connected) self.connection.ioloop.start() def close(self, amqperror=False): if (self.connection and not self.connection.closing and not self.connection.closed): self.logger.debug("Closing connection") self.connection.close() #self.connection.ioloop.start() def on_remote_close(self, code, text): self.logger.debug("Remote channel close, code %d" % code) time.sleep(2) if code != 200: self.close() raise AmqpError(text) def on_connection_closed(self, frame): self.connection.ioloop.stop() def on_connected(self, connection): self.connection = connection self.connection.add_on_close_callback(self.on_connection_closed) self.connection.channel(self.on_channel_open)
class Amqp(object): def __init__(self, conf): # RabbitMQ general options self.cacertfile = conf['cacertfile'] self.certfile = conf['certfile'] self.exchange = conf['exchange'] self.status_exchange = conf['status_exchange'] self.fail_if_no_peer_cert = conf['fail_if_no_peer_cert'] self.heartbeat = conf['heartbeat'] self.host = conf['host'] self.keyfile = conf['keyfile'] self.password = conf['password'] self.port = conf['port'] self.ssl_port = conf['ssl_port'] self.queue = conf['uuid'] self.retry_timeout = conf['retry_timeout'] self.ssl_auth = conf['ssl_auth'] self.use_ssl = conf['use_ssl'] self.username = conf['username'] self.vhost = conf['vhost'] # Connection and channel initialization self.connection = None self.channel = None # Plain credentials credentials = PlainCredentials(self.username, self.password) pika_options = { 'host': self.host, 'port': self.port, 'virtual_host': self.vhost, 'credentials': credentials } # SSL options if self.use_ssl: pika_options['ssl'] = True pika_options['port'] = self.ssl_port if self.ssl_auth: pika_options['credentials'] = ExternalCredentials() pika_options['ssl_options'] = { 'ca_certs': self.cacertfile, 'certfile': self.certfile, 'keyfile': self.keyfile, 'cert_reqs': CERT_REQUIRED } if self.heartbeat: pika_options['heartbeat'] = self.heartbeat self.parameters = None try: self.parameters = pika.ConnectionParameters(**pika_options) except TypeError as err: self.logger.debug(err) # Let's be compatible with original pika version (no integer for # heartbeats and no ssl. self.logger.warning("Wrong pika lib version, won't use ssl.") pika_options['heartbeat'] = True if self.use_ssl: self.use_ssl = False pika_options['port'] = self.port del pika_options['ssl'] if self.ssl_auth: self.ssl_auth = False del pika_options['ssl_options'] self.parameters = pika.ConnectionParameters(**pika_options) def connect(self): SelectPoller.TIMEOUT = .1 self.connection = SelectConnection(self.parameters, self.on_connected) self.connection.ioloop.start() def close(self, amqperror=False): if (self.connection and not self.connection.closing and not self.connection.closed): self.logger.debug("Closing connection") self.connection.close() #self.connection.ioloop.start() def on_remote_close(self, code, text): self.logger.debug("Remote channel close, code %d" % code) time.sleep(2) if code != 200: self.close() raise AmqpError(text) def on_connection_closed(self, frame): self.connection.ioloop.stop() def on_connected(self, connection): self.connection = connection self.connection.add_on_close_callback(self.on_connection_closed) self.connection.channel(self.on_channel_open)