在使用接口Channel::Create()连接到rabbitmq时,如果网络中断或者ip端口地址不对的时候,程序就会一直阻塞在这个调用上,没有 返回值没有异常提示,这种情况如果你想提示个错误什么的就无能为力了,Panda工作中也遇到这个问题,我想:如果他能提供一个连接超时异常就好了,毕竟 SimpleAmqpClient只是对另外一个c语言开源项目rabbitmq-c的封装,而且我记得rabbitmq-c是支持我所说的功能的。下面 请跟随我一起一步一步完成这个事情吧。
1
1 intm_nSockfd;2 intm_nChannelIdSend;3 intm_nChannelIdReve;4 intm_nChannelIdResult;5 amqp_connection_state_t m_Connection;6 amqp_bytes_t m_stReply_to_queue;
View Code
m_Connection =amqp_new_connection();2 m_nSockfd =amqp_open_socket(m_strIp.toLocal8Bit().data(), m_nPort);3 amqp_set_sockfd(m_Connection, m_nSockfd);4 amqp_login(m_Connection, "/", 0, 131072, 0, AMQP_SASL_METHOD_PLAIN,m_strRabbitUser.toLocal8Bit().data(), m_strRabbitPwd.toLocal8Bit().data());5
6 //生产者
7 amqp_channel_open(m_Connectio