Exemplo n.º 1
0
    def open(self, af):
        if self.type in ('mq', 'easymq'):  # mesage queue , as qpid
            from conn_easymq import RpcConnectionEasyMQ
            self.impl = RpcConnectionEasyMQ(self)
        elif self.type == EP_NAMES[QPIDMQ]:
            from conn_qpid import RpcConnectionQpidMQ
            self.impl = RpcConnectionQpidMQ(self)
        elif self.type == EP_NAMES[SOCKET]:
            from conn_socket import RpcConnectionSocket
            self.impl = RpcConnectionSocket(ep=self)
        elif self.type == EP_NAMES[WEBSOCKET]:
            from conn_websocket import RpcConnectionWebSocket
            self.impl = RpcConnectionWebSocket(ep=self)
        else:
            log_error('just support MQ type! error ep:%s %s %s' %
                      (self.name, self.addr, self.type))
            return False
#		print str(self)
#socket/websocket时,此刻的connection其实是个伪连接,只是保存endpoint之用,真实的操作在socketAdapter的start()
#如果是消息队列连接,则即刻打开读/写连接
        if self.type in (EP_NAMES[MQ], EP_NAMES[EASYMQ], EP_NAMES[QPIDMQ],
                         EP_NAMES[ZMQ]):
            return self.impl.open(af=af)
        return True