legongju.com
我们一直在努力
2025-01-04 16:35 | 星期六

java如何实现websocket通讯

在Java中实现WebSocket通信,你可以使用Java API for WebSocket (JSR 356) 或者一些流行的库,如Spring Boot和Tyrus。下面是一个简单的示例,展示了如何使用Java API for WebSocket创建一个基本的WebSocket服务器。

  1. 首先,确保你的项目中包含了Java WebSocket API。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖:

    javax.websocket
    javax.websocket-api
    1.1

  1. 创建一个WebSocket服务器端点类:
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

@ServerEndpoint(value = "https://www.yisu.com/websocket")
public class WebSocketServer {

    private static Set sessions = Collections.synchronizedSet(new HashSet<>());

    @OnOpen
    public void onOpen(Session session) {
        sessions.add(session);
        System.out.println("New client connected: " + session.getId());
    }

    @OnMessage
    public void onMessage(String message, Session session) {
        System.out.println("Received message from client " + session.getId() + ": " + message);
        broadcastMessage("Message from server: " + message);
    }

    @OnClose
    public void onClose(Session session) {
        sessions.remove(session);
        System.out.println("Client disconnected: " + session.getId());
    }

    @OnError
    public void onError(Exception error) {
        System.err.println("Error in WebSocket server: " + error.getMessage());
    }

    private void broadcastMessage(String message) {
        for (Session session : sessions) {
            try {
                session.getBasicRemote().sendText(message);
            } catch (IOException e) {
                System.err.println("Error sending message to client: " + e.getMessage());
            }
        }
    }
}
  1. 创建一个WebSocket服务器类,用于启动服务器并注册WebSocket端点:
import javax.websocket.server.Server;
import java.util.HashSet;
import java.util.Set;

public class WebSocketServer {

    public static void main(String[] args) {
        Set> classes = new HashSet<>();
        classes.add(WebSocketServer.class);

        Server server = new Server("localhost", 8080, classes);
        try {
            server.start();
            System.out.println("WebSocket server started on port 8080");
            server.wait();
        } catch (Exception e) {
            System.err.println("Error starting WebSocket server: " + e.getMessage());
        }
    }
}

现在,当你启动WebSocket服务器并访问ws://localhost:8080/websocket时,你将能够与服务器进行实时通信。你可以使用任何支持WebSocket的客户端库来测试这个服务器。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/42777.html

相关推荐

  • Gosling Java的安全性如何保证

    Gosling Java的安全性如何保证

    Gosling的Java(通常指的是OpenJDK,因为Gosling是Sun Microsystems/Oracle的一名知名工程师,也是Java语言的创造者之一,但他并没有直接负责Java的安全性工作)...

  • Gosling Java与Java 8兼容性怎样

    Gosling Java与Java 8兼容性怎样

    Gosling Java 这个名称实际上是不准确的,因为 Java 是由 James Gosling 领导的团队开发的,并且 Java 8 是 Java 语言的一个版本。根据搜索结果,没有找到关于 G...

  • 如何安装和配置Gosling Java

    如何安装和配置Gosling Java

    Gosling Java是一个流行的Java开发环境,它提供了许多有用的工具和功能,可以帮助开发者更高效地编写、测试和调试Java代码。以下是如何安装和配置Gosling Java的...

  • Gosling Java在移动端的应用如何

    Gosling Java在移动端的应用如何

    Java是由James Gosling等人开发的编程语言,广泛应用于企业级应用、移动开发、大数据处理等领域。尽管搜索结果中没有直接提及Gosling Java在移动端的具体应用情况...

  • java如何实现网络代理

    java如何实现网络代理

    在Java中,可以使用多种方法实现网络代理。这里,我将向您展示如何使用Java的原生java.net.Proxy类和第三方库ProxySelector来实现网络代理。
    方法1:使用ja...

  • java如何实现视频预览

    java如何实现视频预览

    在Java中实现视频预览,可以使用JavaCV库,这是一个基于OpenCV的Java接口,用于处理视频和图像。以下是使用JavaCV实现视频预览的步骤: 首先,确保你已经安装了J...

  • java工作流如何实现

    java工作流如何实现

    Java工作流(Workflow)是一种实现业务流程自动化的框架。它允许你定义、管理和协调多个任务和活动,以便在满足特定业务规则的情况下执行它们。Java工作流通常包...

  • 基于linux的java开发怎么实现

    基于linux的java开发怎么实现

    在Linux系统上实现Java开发,主要步骤包括安装Java开发工具包(JDK)、配置环境变量以及选择合适的集成开发环境(IDE)。以下是详细的步骤:
    安装JDK 下载J...