美文网首页
关于使用WebSocket

关于使用WebSocket

作者: Ukuleler | 来源:发表于2018-05-03 15:29 被阅读0次

前端需要这样写

    var websocket = null;
        if('WebSocket' in window){
            websocket = new WebSocket('ws://izelong.natapp1.cc/webScoket');
        }else{
            alert("该浏览器不支持websocket!");
        }

        websocket.onopen = function(event){
            console.log("建立连接");
        }
        websocket.onclose = function(event){
            console.log("关闭连接");
        }

        websocket.onmessage = function(event){
            console.log("收到消息:" + event.data);
            //弹窗提醒,播放音乐
        }

        websocket.onerror = function(){
            alert("websocket通信发生错误!");
        }
        window.onbeforeunload = function(){
            websocket.onclose();
        }

其中we://..../webSocket 服务端遵守ws协议

服务端pom.xml需要引入websocket依赖

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

新建service 定义接口@ServerEndpoint("/webSocket")

@ServerEndpoint("/webScoket")
public class WebSocket {
    private Session session;

    private static CopyOnWriteArraySet<WebSocket> webSocketSet = new CopyOnWriteArraySet<>();

    @OnOpen
    public void onOpen(Session session){
        this.session = session;
        webSocketSet.add(this);
        log.info("【webSocket】有新的连接,总数:{}", webSocketSet.size());
    }

    @OnClose
    public void onClose(){
        webSocketSet.remove(this);
        log.info("【webSocket】连接断开,总数:{}",webSocketSet.size());
    }

    @OnMessage
    public void onMessage(String message){
        log.info("【webSocket】收到客户端发来的消息:{}",message);
    }

    public void sendMessage(String message){
        for(WebSocket webSocket:webSocketSet){
            log.info("【websocket】广播消息,message:{}",message);
            try{
                webSocket.session.getBasicRemote().sendText(message);
            } catch (IOException e){
                log.error("【websocket】发送消息异常:{}",message);
                e.printStackTrace();
            }
        }
    }
}

需要序列化pojo类,idea提供了序列化插件
引入Serializable接口
idea引入Serializable插件
修改serializable插件快捷键

相关文章

  • 【Java基础】WebSocket在Spring中的使用

    WebSocket 使用 关于怎么使用WebSocket,以及WebSocket的一些概念,这篇文章[https:...

  • 关于使用WebSocket

    前端需要这样写 其中we://..../webSocket 服务端遵守ws协议 服务端pom.xml需要引入web...

  • vue中使用webSocket更新实时天气

    前言 在 vue 中使用 webSocket 做一个简单的天气实时更新模块。 关于 webSocket 的操作及示...

  • iOS Facebook/SocketRocket SSL双向认

    第一次写简书,记录一下最近开发的项目关于使用websocket遇到的问题。 因为后台使用的是Websocket协议...

  • 关于websocket的一些内容

    关于websocket的一些内容 自己搜索使用过的一些资料,仅供参考。 iOS 接入websocket - dre...

  • Websocket

    使用WebSocket WebSocket 接受一个url参数,然后使用WebSocket对象的构造函数来建立与服...

  • Express Websocket使用

    本文主要介绍express+websocket的使用 WebSocket WebSocket 协议在2008年诞生...

  • websocket

    Websocket 协议 Websocket 遵循 rfc6455 标准。websocket使用HTTP作为它的传...

  • 2020-12-07

    vue使用WebSocket接受推送消息 webSocket(){ constthat=this; if(type...

  • WebSocket

    本文介绍 WebSocket 协议的使用方法。 一、为什么需要 WebSocket? 初次接触 WebSocket...

网友评论

      本文标题:关于使用WebSocket

      本文链接:https://www.haomeiwen.com/subject/vstlrftx.html