webSocket使用

发布时间:2024年01月12日

项目中用的是vue2,要实现订阅广播以及发送消息的功能。

冷不丁会用几次,记录一下。

首先要下载SockJS、Stomp

npm i sockjs
npm i stompjs -S

然后引用

// import SockJS from "sockjs-client";
import SockJS from 'sockjs-client/dist/sockjs.min.js';
import Stomp from 'stompjs';

第一行引用会报错,会找不到SockJS,所以用第二行的引入方式。

        // ws对接
        getWs() {
            let socket = new SockJS('http://192.xxx.xx.xxx:8080/websocket');
            let stompClient = Stomp.over(socket);
            stompClient.connect(
                { sso_session_id2: localStorage.getItem('Token') },
                frame => {
                    //订阅方法 /topic/project-proposal/chapter-notify/subscribe/{projectId}
                    stompClient.subscribe('/topic/project-proposal/chapter-notify/subscribe/1468036753002942464', function (message) {
                        console.log('订阅 ' + message.body);
                    });
                    //初始化方法 /app/project-proposal/chapter-notify/init/{projectId}
                    stompClient.subscribe('/app/project-proposal/chapter-notify/init/1468036753002942464', function (message) {
                        console.log('初始化 ' + message.body);
                    });
                    //发送消息 /app/project-proposal/chapter-notify/handle/{projectId}
                    /*stompClient.send('/app/project-proposal/chapter-notify/handle/1468036753002942464', {}, "{\"status\":false,\"index\":\"2.1\"}",function (message) {
                console.log('/handle/1468036753002942464: ' + message.body);
            });*/
                    //取消订阅方法 /topic/warn/warning-manage/topic-notify/{projectId}
                    /*stompClient.unsubscribe('/topic/project-proposal/chapter-notify/subscribe/1468036753002942464',{},{},function (message) {
                console.log('/topic/project-proposal/chapter-notify/subscribe/1588433047893921792: ' + message.body);
            });*/
                },
                err => {
                    console.log(err);
                    console.log(err.headers['message']);
                }
            );
        },

调用getWs()方法就好了。

文章来源:https://blog.csdn.net/Giraffe0615/article/details/135558220
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。