java如何接收消息
使用 Java 接收消息的方法
通过 Socket 接收消息
Socket 是 Java 中实现网络通信的基础工具,可以用于接收 TCP 消息。以下是一个简单的示例:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(8080);
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String message = in.readLine();
System.out.println("Received: " + message);
in.close();
clientSocket.close();
serverSocket.close();
}
}
通过消息队列接收消息
使用消息队列(如 RabbitMQ、Kafka)可以高效地接收异步消息。以下是 RabbitMQ 的示例:
import com.rabbitmq.client.*;
public class RabbitMQConsumer {
public static void main(String[] args) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare("test_queue", false, false, false, null);
DeliverCallback deliverCallback = (consumerTag, delivery) -> {
String message = new String(delivery.getBody(), "UTF-8");
System.out.println("Received: " + message);
};
channel.basicConsume("test_queue", true, deliverCallback, consumerTag -> {});
}
}
通过 WebSocket 接收消息
WebSocket 适用于实时双向通信。以下是使用 Java WebSocket API 的示例:
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/ws")
public class WebSocketServer {
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("Received: " + message);
}
}
通过 HTTP 请求接收消息
使用 Spring Boot 可以轻松接收 HTTP 请求中的消息:
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MessageController {
@PostMapping("/message")
public String receiveMessage(@RequestBody String message) {
System.out.println("Received: " + message);
return "Message received";
}
}
通过 JMS 接收消息
Java 消息服务(JMS)提供了一种标准化的方式来接收消息。以下是 ActiveMQ 的示例:

import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;
public class JMSConsumer {
public static void main(String[] args) throws Exception {
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("test.queue");
MessageConsumer consumer = session.createConsumer(destination);
Message message = consumer.receive();
if (message instanceof TextMessage) {
System.out.println("Received: " + ((TextMessage) message).getText());
}
session.close();
connection.close();
}
}
以上方法涵盖了从低级网络通信到高级消息中间件的多种消息接收方式,可以根据具体需求选择适合的方案。






