Java WebSocket 开发指南

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,广泛用于需要服务器主动推送数据的场景,如聊天应用、实时通知、在线游戏等。Java EE 7 起原生支持 WebSocket(JSR 356),开发者可通过注解或编程方式轻松实现。

1. 基本概念

WebSocket 与传统 HTTP 不同,它建立持久连接,允许服务端和客户端双向发送消息,无需频繁轮询。

2. 简单服务端示例(使用注解)

@ServerEndpoint("/websocket")
public class MyWebSocketServer {
    @OnOpen
    public void onOpen(Session session) {
        System.out.println("连接建立: " + session.getId());
    }

    @OnMessage
    public void onMessage(String message, Session session) {
        System.out.println("收到消息: " + message);
        try {
            session.getBasicRemote().sendText("Echo: " + message);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @OnClose
    public void onClose(Session session) {
        System.out.println("连接关闭: " + session.getId());
    }

    @OnError
    public void onError(Throwable error) {
        error.printStackTrace();
    }
}

3. 客户端连接(浏览器 JavaScript)

const ws = new WebSocket('ws://localhost:8080/your-app/websocket');

ws.onopen = () => {
    console.log('连接已建立');
    ws.send('Hello Server!');
};

ws.onmessage = (event) => {
    console.log('收到消息:', event.data);
};

ws.onclose = () => {
    console.log('连接已关闭');
};

4. 注意事项

5. 扩展阅读

WebSocket 可与 Spring Boot 集成(使用 spring-websocket),提供更强大的配置与 STOMP 协议支持,适用于复杂实时系统。

“iamback”梗是怎么来的?起源、含义与网络文化解析 Blacksouls1 钢铁汉斯-角色介绍与攻略指南 TopCrashBack-高效崩溃日志分析与回溯工具 Blackmagic卡有什么用?功能详解与应用场景指南 Go Black-极简主义与深色美学专题 My Block-个人创作与数字积木空间 Mark Cross是什么牌子?品牌历史与产品介绍 Boom Clap是哪部电影的歌曲?原唱及出处详解 Wacom翻译指南-Wacom数位板与软件多语言支持详解 HeadBackHome-回到起点,安心归家 mlblock78TP下载-安全免费获取最新版mlblock软件 Backloaded 翻译-含义、用法与中文解释 手把手教你做一杯好咖啡|咖啡制作指南 Blackmagic Camera 78TP下载-免费获取专业摄像机控制App Black-ColorboxV9-极简黑盒工具集 Looking Calmly Back at Me-静静回望的瞬间 “Attack on” 与 “Attack to” 用法详解|英语语法专题 bacio什么意思?意大利语“吻”的含义与用法详解 BlackGateOne-专注数字安全与高效办公解决方案 Mako是干嘛的?全面解析Mako模板引擎的功能与用途 Black Souls 2 地图攻略-全区域详解与路线指南 I'm come back swinging 中文翻译与解析-专题页面 Back 4 Blood 配置要求|78TP最低与推荐系统需求 Jack in a Box 汉堡-经典美式快餐体验 Postman Mock Server 使用指南-快速搭建 API 模拟服务 NeverComingBack感情专题-那些回不去的爱与告别 Blackboard78TP下载-安全免费获取最新版Blackboard应用 Make Back-轻松创建与恢复备份的实用指南 为他人打包物品指南|实用整理与打包技巧 Blacksouls2 诺登在哪?详细位置与任务指南 Blackmail完整版翻译-中文权威译文与解析 BlackSouls人物不显示问题解决指南-常见原因与修复方法 Expect Back-高效文件互传与在线文档处理指南 Blocks 的含义、用法与常见复数形式详解 Wacom中文7LONGWEN指南-数位板与创意笔使用教程 wombat词根详解-英语词源与词汇学习专题 Lowback 专题页-轻量、高效、专注的解决方案 Blackmail高级英语课件-高阶词汇与表达精讲 Make or Break 是什么意思?详解与用法示例 Mock模拟数据工具指南-快速生成测试数据 Black-on-Black Offhand:极简美学与实用技巧指南 如何通过网络赚钱|Make Money Online 实用指南 Bamboom-探索自然与科技的和谐之美 Hold Him Back-情感与关系中的克制与理解 TopCashback中国7LONGWEN-高返现购物返利平台 Make a Hole-打孔技巧、工具与创意应用指南 Lay Back的歌-音乐专题页面 All Black-极简黑色主题专题页 Blackmail(勒索)主要讲了什么?定义、类型与防范指南 苹果 Magic Keyboard 使用指南与技巧-完整专题 Blackboard 安卓版下载与使用指南-高效学习平台 kcab是什么意思?网络用语解析与常见用法 Momotalk最新版下载与使用指南-免费安全78TP资源 高级英语词汇解析:Blackmail(勒索)用法与例句|英语学习专题 Remarkably-高效笔记与文档协作工具 Backbine-高效协作与文档处理解决方案 Back支持怎么用?全面使用指南与技巧 bambam微博-最新动态、热门话题与粉丝互动平台 Welcome to Back-欢迎回归 Backbone.js 入门指南-轻量级前端 MVC 框架详解 Some PLEASE Come Back-情感专题页面 Work Back 是什么意思?全面解析与使用场景 Back 支持-高效办公与文件协作解决方案 Rambo是什么意思?兰博角色解析与文化影响 Boom Clap 原唱是谁?Charli XCX 歌曲介绍与背景解析 Blacksouls2 升级找谁?全面指南与常见问题解答 无忧退款保障|30天无理由退换政策说明 Block B 小分队-韩国人气男团专题页 Blackmagiocam软件讲解-功能、使用方法与常见问题指南 《Blackmail》课文结构划分详解-英语阅读分析指南 Mocky人名翻译-快速英文名生成与中文名音译工具 I Love You to the Moon and Back-永恒的爱意表达 如何给人留下深刻印象(Make an Impression on Someone)-实用指南 免费在线背景去除工具-一键移除图片背景|Background Remover Beam Of-探索光束、灵感与连接的专题页面 Lay Back Flow-轻松生活,自在流动 O Mio Babbino Caro 歌词-意大利经典咏叹调歌词与赏析 boombaclat的隐晦含义解析-网络俚语与文化探秘 I Am Come Back-重返与启程 Logback 日志清理机制详解-自动归档与删除策略指南 cblock 和 gai 是什么关系?全面解析两者的联系与区别 Backpack 还是 Packbag?背包术语全解析与选购指南 Make Known-分享知识,传递价值 Blacksouls 全角色攻略-角色技能、出装与玩法详解 Blackmail课文分段解析-英语学习专题 Blackralnbow-探索黑白与彩虹的创意边界 Look Back On As:回顾与反思的时光 Backcountry安卓版下载与使用指南-户外探险必备APP cockscomb怎么读-发音、释义与用法详解 英语做书指南-从零开始制作你的英文书籍|实用教程 Back Roads 探索之旅-静谧乡间小路的诗意与远方 got…back 的用法详解-英语语法专题 Be a Cook-开启你的烹饪之旅|简单实用的厨房指南 Locked and Loaded-专注高效办公与文件协作 coldblack香烟-品牌介绍与相关信息 Dark Magic-探索神秘黑魔法的奥秘 Tomcat最新版本下载与使用指南-78TPApache Tomcat信息汇总 Please Back Come-怀念与重逢的专题页面 Back键手柄使用指南-游戏手柄操作技巧与设置教程 JackBoys2 专题页面|音乐、潮流与态度