当前位置:首页 > Java

java如何接收消息

2026-03-23 05:13:30Java

使用 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 的示例:

java如何接收消息

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();
    }
}

以上方法涵盖了从低级网络通信到高级消息中间件的多种消息接收方式,可以根据具体需求选择适合的方案。

标签: 消息java
分享给朋友:

相关文章

java如何编译

java如何编译

编译Java程序的基本步骤 安装JDK(Java Development Kit)并配置环境变量。确保javac和java命令可在命令行中运行。JDK是编译和运行Java程序的必备工具。 创建Jav…

java如何创建对象

java如何创建对象

创建对象的基本方法 在Java中,创建对象主要通过new关键字调用构造函数完成。基本语法为: ClassName objectName = new ClassName(); 例如创建String对象…

如何编译java文件

如何编译java文件

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证。若未安装,需从Oracle或Open…

java如何获取当前时间

java如何获取当前时间

获取当前时间的方法 在Java中,可以通过多种方式获取当前时间。以下是几种常见的方法: 使用 java.util.Date Date currentDate = new Date(); Syste…

java如何遍历map

java如何遍历map

遍历Map的几种方法 在Java中,遍历Map有多种方式,可以根据需求选择合适的方法。以下是常见的几种遍历方式: 使用entrySet遍历 通过entrySet()方法获取键值对的集合,可以同时访问…

如何导入java项目

如何导入java项目

导入Java项目的方法 使用IDE导入(如IntelliJ IDEA或Eclipse) 打开IDE后选择导入现有项目,导航至项目根目录(包含pom.xml或build.gradle的文件位置)。IDE…