两种实现WebSocket的方式,基于Java实现WebSocket。

这篇具有很好参考价值的文章主要介绍了两种实现WebSocket的方式,基于Java实现WebSocket。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先我们声明WebSocker方便打字为ws。

WebSocker ws = new WebSocket();

1,首先是导包啦

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>

或者说启用spring框架,因为spring已经整合了ws。

2,编写配置类

配置类:把spring中的ServerEndpointEx

@Configuration//说明他是一个配置类--》作用就是注入bean
public class WSConfig {
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}

porter对象注入进来

3,编写服务终端类

用iava注解来

@ServerEndpoint          监听连接、

@OnOpen          连接成功、

@OnClose        连接关闭、

@OnMessage        客户端接收服务端数据触发等

//这个类的作用:监听客户端谁连接了服务端。
@ServerEndpoint("/myWs")    //编写监听的连接地址
@Component                  //被扫描到注入spring管理对象
@Slf4j                      //打印日志
public class wsServerEndpont {
    //为了方便找到个session,所以使用了Hashmap。如果使用list需要遍历集合。
    //为了线程安全使用ConcurrentHashMap。
    static Map<String, Session> map = new ConcurrentHashMap<>();


    @OnOpen  //客户端连接到服务端的时候,声明服务端做的事情
    public void onOpen(Session session) { //每一个web连接对于服务端都是一个session
        //连接之后保留这段session。
        map.put(session.getId(), session);
    }

    @OnMessage //收到客户端消息,执行的操作
    public String onMessage(String str) { //接收到的消息
        log.info("收到的消息{}", str);
        return "已收到消息";     //返回的消息
    }

    @OnClose //用户连接关闭时执行的操作。
    public void onClose(Session session) {
        map.remove(session.getId());
        log.info("浏览器以退出");
    }

    //实现定时任务
    @Scheduled(fixedRate = 2000)  //每隔多少秒执行定时任务
    public void sengMsg(String message) throws IOException {
        //向每个客户端发送请求
        for (String s : map.keySet()) {                 //遍历对象
            map.get(s)                                  //或与session对象
                    .getBasicRemote()                   //获取session的远端
                    .sendText("想每一台用户");         //发送那个业务
        }
    }

}

@OnOpen 获取的session很重要文章来源地址https://www.toymoban.com/news/detail-813150.html

到了这里,关于两种实现WebSocket的方式,基于Java实现WebSocket。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是 WebSocket?Java 中如何实现 WebSocket?

    WebSocket 是一种新型的网络协议,它允许客户端和服务器之间进行双向通信,可以实现实时数据交互。WebSocket 协议是基于 HTTP 协议的,使用标准的 TCP 连接,可以在客户端和服务器之间建立一条持久化的连接,而不需要像 HTTP 协议那样每次请求都需要重新建立连接。 WebSocket 协

    2024年02月16日
    浏览(46)
  • SpringBoot整合WebSocket的两种方式及微服务网关Gateway配置

    项目中后台微服务需要向前端页面推送消息,因此不可避免的需要用到WebSocket技术。SpringBoot已经为WebSocket的集成提供了很多支持,只是WebSocket消息如何通过微服务网关Spring Cloud Gateway向外暴露接口,实际开发过程中遇到了很多问题。微服务框架本身是作为一个平台为各种服务

    2024年02月03日
    浏览(45)
  • websocket实现通讯——Java

    参考博客0 1)通知功能: 2)数据收集: 3)加密 认证: 4)反向控制钩子: 1、websocket则允许我们在一条ws连接上同时并发多个请求,即在A请求发出后A响应还未到达,就可以继续发出B请求。由于TCP的慢启动特性(新连接速度上来是需要时间的),以及连接本身的握手损耗,

    2024年02月15日
    浏览(45)
  • Java后端WebSocket的实现

    WebSocket 1.什么是WebSocket? webSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。 webSocket使得客户端和服务器之间的数据交换变得更加简单, (在线聊天基础)允许服务端主动向客户端推送数据(服务器可以主动发消息给客户端) 。在webSocket API中,浏览器和服务器

    2024年02月06日
    浏览(41)
  • java实现websocket握手协议

    其中最重要的是最后几个换行不要丢,将字符串转成byte[]写给客户端即可 收到的掩码转换 下面是服务器向客户端发送消息

    2024年02月08日
    浏览(37)
  • Java实现websocket客户端

    常规情况下,大多数时候Java后台作为websocket服务端,实现方式也比较简单,网上很多案例代码。但是很多时候项目中服务与服务之间也需要使用websocket通信,此时项目就需要实现客户端功能。 步骤一:导入依赖: 步骤二:实现WebSocketClient抽象类: 该类中和websocket服务端接口

    2024年02月16日
    浏览(55)
  • websocket客户端实现(java)

    其中,headers 参数是一个键值对,表示需要设置的请求头。在构造函数中,我们首先创建了一个 ClientEndpointConfig.Configurator 对象,重写了其中的 beforeRequest() 方法,用于在请求之前设置请求头。然后,我们使用 ClientEndpointConfig.Builder.create() 方法创建一个 ClientEndpointConfig 对象,并

    2024年02月15日
    浏览(45)
  • Java 实现使用 Websocket 发送消息

    需求背景:之前做了个楼栋房间数量出租了多少,需要在数据大屏上实时展示 解决方案:以切面拦截出租接口,当有房间出租时重新查询相关数据,封装好用websocket实时传送前端展示 提示:以下是本篇文章正文内容,下面案例可供参考 WebSocket 是一种在单个TCP连接上进行全双

    2024年03月27日
    浏览(42)
  • SpringBoot(java)实现websocket实现实时通信

    WebSockets是一种在Web应用程序中实现实时通信的技术。它允许客户端和服务器之间建立持久的、双向的通信通道,从而使得服务器可以实时向客户端推送数据,而不需要客户端不断地向服务器发起请求。这种实时通信的能力对于需要即时更新数据的应用程序非常有用,比如在线

    2024年04月29日
    浏览(50)
  • Java实现websocket发送长文本问题

    Java实现websocket时,每次发送的文本长度默认限制在8k范围内,原因是 org.apache.tomcat.websocket.WsSession进行了设置   如果发送超过8k的消息,就会报错: 那么要实现类似发送文件的base64,网上有两种方式实现,第一种是实现ServletContextInitializer接口,对onStartup进行重载,大体代码如

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包