webSocket使用

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

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

首先要下载SockJS、Stomp

javascript 复制代码
npm i sockjs
npm i stompjs -S

然后引用

javascript 复制代码
// import SockJS from "sockjs-client";
import SockJS from 'sockjs-client/dist/sockjs.min.js';
import Stomp from 'stompjs';

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

javascript 复制代码
        // 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()方法就好了。

相关推荐
wanhengidc4 分钟前
SCDN能够运用在物联网加速当中吗?
运维·服务器·网络
leona_nuaa18 分钟前
p2p虚拟服务器
服务器·网络协议·p2p
小白自救计划44 分钟前
网络协议分析 实验七 FTP、HTTP、DHCP
网络·网络协议·http
z人间防沉迷k1 小时前
互联网协议的多路复用、Linux系统的I/O模式
linux·网络·http
c语言中的小小白1 小时前
【Linux网络】————详解TCP三次握手四次挥手
网络·网络协议·tcp/ip
9527华安1 小时前
紫光同创FPGA实现AD9280数据采集转UDP网络传输,分享PDS工程源码和技术支持和QT上位机
网络·fpga开发·udp·紫光同创·qt上位机·ad9280
----云烟----2 小时前
使用libUSB-win32的简单读写例程参考
网络
z人间防沉迷k2 小时前
UDP和TCP协议
网络协议·tcp/ip·http·udp
weixin_473894772 小时前
前端服务器部署分类总结
前端·网络·性能优化
roman_日积跬步-终至千里3 小时前
【starrocks】StarRocks 常见 HTTP 操作与导入错误排查指南
starrocks·网络协议·http