当前位置: 首页 > news >正文

郑州区块链数字钱包网站开发过程邢台seo公司

郑州区块链数字钱包网站开发过程,邢台seo公司,wordpress 分类存档,弹幕视频网站开发TextWebSocketHandler 和 ServerEndpoint 都可以用于实现 WebSocket 服务器,但它们属于不同的技术栈,使用方式和功能有一些区别。以下是它们的对比: 1. 技术栈对比 特性TextWebSocketHandler (Spring)ServerEndpoint (Java EE/JSR-356)所属框…

TextWebSocketHandler@ServerEndpoint 都可以用于实现 WebSocket 服务器,但它们属于不同的技术栈,使用方式和功能有一些区别。以下是它们的对比:


1. 技术栈对比

特性TextWebSocketHandler (Spring)@ServerEndpoint (Java EE/JSR-356)
所属框架Spring FrameworkJava EE 标准 (JSR-356)
依赖需要 Spring Boot 或 Spring WebSocket需要 Java EE 或兼容的实现(如 Tyrus)
配置方式基于 Spring 配置,使用 WebSocketConfigurer基于注解,直接标记类为 WebSocket 端点
功能扩展支持 Spring 的拦截器、消息转换等功能功能较为基础,依赖 Java EE 标准
适用场景适合 Spring 项目适合纯 Java EE 项目或非 Spring 项目

2. 功能对比

TextWebSocketHandler (Spring)
  • 是 Spring 框架提供的 WebSocket 处理器。
  • 需要配合 WebSocketConfigurer 进行配置。
  • 支持更高级的功能,如:
    • 消息转换(将消息转换为 Java 对象)。
    • 拦截器(在连接建立或关闭时执行额外逻辑)。
    • 与 Spring 生态无缝集成(如依赖注入、AOP 等)。

示例:

import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;public class MyTextWebSocketHandler extends TextWebSocketHandler {@Overrideprotected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {System.out.println("收到客户端消息: " + message.getPayload());session.sendMessage(new TextMessage("服务器回复: " + message.getPayload()));}@Overridepublic void afterConnectionEstablished(WebSocketSession session) throws Exception {System.out.println("客户端连接成功: " + session.getId());}@Overridepublic void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {System.out.println("客户端断开连接: " + session.getId());}
}

配置类:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {@Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {registry.addHandler(new MyTextWebSocketHandler(), "/ws").setAllowedOrigins("*");}
}

@ServerEndpoint (Java EE/JSR-356)
  • 是 Java EE 标准(JSR-356)提供的注解。
  • 直接标记一个类为 WebSocket 端点。
  • 功能较为基础,适合简单的 WebSocket 应用。
  • 需要依赖 Java EE 或兼容的实现(如 Tyrus)。

示例:

import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;@ServerEndpoint("/ws")
public class MyWebSocketServer {@OnOpenpublic void onOpen(Session session) {System.out.println("客户端连接成功: " + session.getId());}@OnMessagepublic void onMessage(String message, Session session) {System.out.println("收到客户端消息: " + message);try {session.getBasicRemote().sendText("服务器回复: " + message);} catch (IOException e) {e.printStackTrace();}}@OnClosepublic void onClose(Session session) {System.out.println("客户端断开连接: " + session.getId());}@OnErrorpublic void onError(Session session, Throwable throwable) {System.out.println("发生错误: " + throwable.getMessage());}
}

3. 使用场景对比

场景TextWebSocketHandler (Spring)@ServerEndpoint (Java EE/JSR-356)
Spring 项目推荐使用,与 Spring 生态无缝集成不推荐,功能较为基础
非 Spring 项目不适用推荐使用,纯 Java EE 标准
需要高级功能(如拦截器)支持不支持
需要消息转换支持不支持
需要依赖注入支持不支持

4. 总结

  • TextWebSocketHandler

    • 属于 Spring 框架,功能强大,支持拦截器、消息转换等高级特性。
    • 适合 Spring 项目,尤其是需要与 Spring 生态集成的场景。
  • @ServerEndpoint

    • 属于 Java EE 标准,功能较为基础,使用简单。
    • 适合非 Spring 项目或简单的 WebSocket 应用。

如果你的项目基于 Spring,推荐使用 TextWebSocketHandler;如果是纯 Java EE 项目或非 Spring 项目,可以使用 @ServerEndpoint

http://www.yayakq.cn/news/309928/

相关文章:

  • 生鲜电商网站建设与管理大连装修公司排名榜
  • 试卷网站在线做用html做网站源代码
  • 网站备案需要审核多久新公司简介范文
  • 做电影网站用什么服务器做网站点击率赚钱
  • 怎么下学做衣服网站如何建立微信公众号怎么申请
  • 越南国家建设部网站国外用tornado做的网站
  • 创意型网站建设厦门做外贸网站
  • 网站开发综合实训心得看网站用什么软件
  • 网站开发协议书 英文版创新的做网站
  • 互联网平台推广资源seo网站优化排名
  • 烟店网站建设wordpress投稿者权限
  • 个体工商户可以做网站备案吗软文写作营销
  • 山西+网站建设建设工程合同无效工程价款的结算
  • 东莞外贸网站建设哪家好镇网站建设管理工作总结
  • 青岛建设网站的公司网络管理系统逻辑上的四个组成
  • 谷歌商店官网廊坊优化网站排名
  • 电子商务行业网站有哪些网站模板下载源码
  • 4.请简述网站建设流程的过程郑州市招投标信息网
  • 企业是如何做电子商务网站大学生ppt免费模板网站
  • 想学网站搭建与推广领优惠券的网站怎么做
  • 家庭nas可以做网站服务器python基础教程第三版pdf下载
  • 东莞网站推广团队广西玉林建设厅官方网站
  • 厦门城乡住房建设厅网站首页沈阳建设工程信息网职称公示2013年
  • 怎样可以有自己的网站快速建企业网站
  • iis怎么创建网站正规it培训学校哪家好
  • 百度云怎么做网站空间安阳企业网站优化排名
  • 网站的图文链接怎么做的linux下用python做网站
  • 化妆品网站建设说明网络架构师和网络工程师区别
  • 网站域名asia是中山seo优化
  • 网站掉排名重庆建一个网站