SpringBoot集成Websocket

WebSocket

特点

  1. 全双工通信,客户端和服务器可以双向平等通信;
  2. 建立在TCP协议之上,服务器端的实现比较容易;
  3. 数据格式比较轻量,性能开销小,通信高效;
  4. 可以发送文本,也可以发送二进制数据;
  5. 通信具有更强的实时性;
  6. 协议标识符是ws,服务器地址就是:ws://www.abc.com/some/path
  7. http协议: http://

Websocket开发相关注解及API方法

  1. @ServerEndpoint("/websocket/{uid}") 申明这是一个websocket服务

  2. @OnOpen 该方法将在建立连接后执行,会传入session对象,就是客户端与服务端建立的长连接通道,通过@PathParam获取url中声明的参数
    用法:public void onOpen(Session session, @PathParam("uid") String uid) throws IOException{}

  3. @OnClose 该方法是在连接关闭后执行;
    用法:public void onClose() {}

  4. @OnMessage 该方法用于接收客户端发送的消息;
    message: 发来的消息数据
    session:会话对象(也是长连接通道)

    用法:public void onMessage(String message, Session session) throws IOException {}

发送消息到客户端,通过session进行消息发送;

public void onMessage(String message, Session session) throws IOException {
    session.getBasicRemote().sendText("hello,websocket.");
}

第三方商业方案goeasy

GoEasy实时Web推送,支持后台推送和前台推送两种:

  1. 后台推送可以选择Java SDK、Restful API支持所有开发语言;
  2. 前台推送:JS推送,由于它支持websocket 和polling两种连接方式所以兼顾大多数主流浏览器,低版本的IE浏览器也是支持的;
  3. 地址:http://goeasy.io/

Websocket各浏览器的支持情况:

https://caniuse.com/#search=websocket

springboot继承websocket

配置类模板

@EnableWebSocket //启用WebSocket支持
@Configuration //表示配置类
public class WebSocketConfig {
    /**
         * 配置ServerEndpointExporter的bean
         * 该Bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint
         */
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}

服务器类配置

//@ServerEndpoint注解中指定WebSocket协议的地址;
//@OnOpen、@OnMessage、@OnClose、@OnError注解与WebSocket中监听事件对应
@Component
@ServerEndpoint("/websocket/{username}")
public class xxx {
    
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 需求分析 ## 1.前台 ### 1.1.首页 1.首页视频展示: ​ 按照时间降序显示 ​ 视频数据展示:视频链接、封面链接、视频标题、所属二级类别、点赞数、提交者的头像 2.搜索功能: ​ 根据视频名字或者用户名字模糊查询,将查询结果显示在首页 3.发布视频和图片功能: ​ 发布视频:选择视频,填写视频简介、标题和分类,发布 ​ 选择视频或图片提交。 ### 1.2.分类 1.根据分类查看视频(图片)功能: ​ 实现一级分类和二级分类的联动, 2.查看视频详情功能: ​ 进入二级分类的数据列表中,可以查看视频详情。同首页查看视频详情功能相同。 ### 1.3.动态 展示用户关注博主的动态:如发布的视频和图片。 ### 1.4.我的 1.用户编辑个人信息:点击头像进入编辑个人中心。 ​ 编辑资料: ​ 视频:发布的视频(右上角按钮可删除) ​ 分组:创建、删除、修改,查看用户的个人分组 ​ 图片:发布的图片(右上角按钮可删除) 2.历史: ​ 展示查看数据的列表 3.关注: ​ 我的关注:用户关注的博主列表; ​ 关注按钮,点击即可关注,再点击即可取消关注 ​ 关注的用户信息链接:粉丝数、发布的视频数、头像、分组信息 ​ 我的粉丝:关注用户的粉丝列表。 4.消息: ​ 评论信息、点赞信息 5.缓存 ​ 清空缓存 6.反馈: ​ 包括标题和内容,提交给后台管理系统 7.关于我们 8.语言环境-自动 9.隐私协议 10.学分计算 ​ 根据用户不同行为,增加学分 11.退出登录 ### 1.5.视频观看 简介: ​ 显示数据:发布者头像、昵称、发布时间、视频标题、简介、播放次数、点赞次数。 ​ 功能:点赞,不喜欢,收藏,分享,关注。 ​ 推荐视频列表。 评论: ​ 评论列表。 ​ 显示:评论的内容、时间,用户名,用户头像。 ​ 删除评论功能。 ​ 提交评论功能。 ## 2.后台管理系统 ### 2.1.视频or图片管理 ​ 审核数据。查看、删除功能。 ### 2.2.分组管理 ​ 管理数据的分组,实现分组的增删该查 ### 2.3.用户管理 ​ 修改用户状态 ### 2.4.反馈管理 ​ 查看、删除功能 ​

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值