安卓使用rabbitmq,为什么队列都在格式化界面显示了,但是查不到消息,并且messags这一列都是0?以下是代码和效果图
效果图:
代码:
MainActivity
package com.jl.rabbitmq;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private RabbitMQManager rabbitMQManager;
private Handler mainHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rabbitMQManager = new RabbitMQManager();
mainHandler = new Handler(Looper.getMainLooper());
// 发送消息
sendMessage("hello_Test");
receiveMessage();
}
private void sendMessage(String message) {
new Thread(() -> {
try {
rabbitMQManager.connect();
rabbitMQManager.sendMessage(message);
rabbitMQManager.close();
mainHandler.post(() -> Toast.makeText(MainActivity.this, "Message sent!", Toast.LENGTH_SHORT).show());
} catch (Exception e) {
e.printStackTrace();
mainHandler.post(() -> Toast.makeText(MainActivity.this, "Failed to send message", Toast.LENGTH_SHORT).show());
}
}).start();
}
private void receiveMessage() {
new Thread(() -> {
try {
rabbitMQManager.connect();
rabbitMQManager.getChannel().basicConsume(RabbitMQManager.QUEUE_NAME, true, (consumerTag, delivery) -> {
String message = new String(delivery.getBody(), "UTF-8");
mainHandler.post(() -> Toast.makeText(MainActivity.this, "Received: " + message, Toast.LENGTH_SHORT).show());
}, consumerTag -> { });
} catch (Exception e) {
e.printStackTrace();
mainHandler.post(() -> Toast.makeText(MainActivity.this, "Failed to receive message", Toast.LENGTH_SHORT).show());
}
}).start();
}
}
RabbitMQManager
package com.jl.rabbitmq;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Channel;
/**
* 功能:
* 作者:Jin
* 日期:2024年05月17日
*/
public class RabbitMQManager {
public final static String QUEUE_NAME = "Test";
public ConnectionFactory factory;
public Connection connection;
public Channel channel;
public RabbitMQManager() {
factory = new ConnectionFactory();
factory.setHost("113.31.105.59");
factory.setUsername("admin");
factory.setPassword("密码我就不提供了");
// factory.setHost("127.0.0.1");
// factory.setUsername("guest");
// factory.setPassword("guest");
}
public void connect() throws Exception {
connection = factory.newConnection();
channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
}
public void sendMessage(String message) throws Exception {
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
}
public void close() throws Exception {
channel.close();
connection.close();
}
public Channel getChannel() {
return channel;
}
}