package com.yz.ZA.servlet;
import java.io.IOException;
import java.util.UUID;
import java.util.concurrent.TimeoutException;
import net.sf.json.JSONArray;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
/**
*
* 默认发送,直接将消息发送到某个队列,默认交换机type为direct
*
* @author
* @date 2019/01/10 11:17:10
* http://222.73.56.59:15672/#/queues TMSEC tmsec@123 /TMSEC
*/
public class ProducterDirect {
private final String key="q3ee5eYxIWZ5Mq1f";
private final String Host="222.73.56.59";
private final String Username="TMSEC";
private final String Password="tmsec@123";
private final int Port=5672;
private final String VirtualHost="/TMSEC";
private final String QUEUE_NAME="request_info";
public void sendMQ(MqBean MqBean){
JSONArray jsonArray = JSONArray.fromObject(MqBean);
// System.out.println(jsonArray.toString());
String jmhMessage = AESHelper.encrypt(jsonArray.toString().replace("[", "").replace("]", ""), key);
// System.out.println("加密后" + jmhMessage);
String bb = AESHelper.decrypt(jmhMessage, key);
// System.out.println("解密后" + bb);
mq(jmhMessage);
}
private void mq(String message){
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(Host);
factory.setUsername(Username);
factory.setPassword(Password);
factory.setPort(Port);
factory.setVirtualHost(VirtualHost);
Connection connection = null;
Channel channel = null;
try {
// 创建一个新的连接
connection = factory.newConnection();
// 创建一个通道
channel = connection.createChannel();
// 声明一个队列
// queueDeclare第一个参数表示队列名称
//第二个参数为是否持久化(true表示是,队列将在服务器重启时生存)
//第三个参数为是否是独占队列(创建者可以使用的私有队列,断开后自动删除)
//第四个参数为当所有消费者客户端连接断开时是否自动删除队列
//第五个参数为队列的其他参数
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
// String message = "{\"temperature\":100}";
// 发送消息到队列中
//basicPublish第一个参数为交换机名称
//第二个参数为队列映射的路由key
//第三个参数为消息的其他属性
//第四个参数为发送信息的主体
channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));
// System.out.println("Producer Send +'" + message + "'");
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭通道和连接
try {
channel.close();
connection.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException, TimeoutException {
String ss="K9+MS3csM0hFJFjavRmSZ2vEajIgQTZrYwyCGfIbPDEHB1noiSgp3sJBLHbRWPkPQiIHWki8EUy0+jZB5lJVtR6C6AJ68YwlXmvPKfJP9/a+gNFCL70QOZRgh0HubQSPZ3ssqJzIiYc18G+NAUc0gjz//CMDJMDOH3Mff2UeQhw7/rClyJ7SJrFS3vbh6PF+MB7ltGu2EqP2UENfexmoWhrdHCnuizX52ofGUV8WA14C+rfpkoazv1P4qs/hiBtpjz8LnlAkbsTXEfKaPr9o+DsyIMqxVkCd51Eb4XZtvypQ3CMWZURnF2zpVhNY6xol/WdTRXfUyWtio6CAOyC8DSUyH59NiHTJo5kBehiKNfLGwF4SbsBYimuROdniWHPDuZtlpaRl6f/3vldiUHxuna/usa0hsWhEo4DuFqNOeMVbnCe0M88I2NpOTwXWGZQ4";
String bb = AESHelper.decrypt(ss, "q3ee5eYxIWZ5Mq1f");
System.out.println("解密后" + bb);
// String QUEUE_NAME="111";
// ConnectionFactory factory = new ConnectionFactory();
// factory.setHost("222.73.56.59");
// factory.setUsername("TMSEC");
// factory.setPassword("tmsec@123");
// factory.setPort(5672);
// factory.setVirtualHost("/TMSEC");
// Connection connection = null;
// Channel channel = null;
// try {
// // 创建一个新的连接
// connection = factory.newConnection();
// // 创建一个通道
// channel = connection.createChannel();
// // 声明一个队列
// // queueDeclare第一个参数表示队列名称
// //第二个参数为是否持久化(true表示是,队列将在服务器重启时生存)
// //第三个参数为是否是独占队列(创建者可以使用的私有队列,断开后自动删除)
// //第四个参数为当所有消费者客户端连接断开时是否自动删除队列
// //第五个参数为队列的其他参数
// channel.queueDeclare(QUEUE_NAME, false, false, false, null);
// String message = "{\"temperature\":100}";
// // 发送消息到队列中
// //basicPublish第一个参数为交换机名称
// //第二个参数为队列映射的路由key
// //第三个参数为消息的其他属性
// //第四个参数为发送信息的主体
// channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));
// System.out.println("Producer Send +'" + message + "'");
//
// } catch (Exception e) {
// e.printStackTrace();
// } finally {
// // 关闭通道和连接
// channel.close();
// connection.close();
// }
}
}