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()方法就好了。

相关推荐
Asum1ta30 分钟前
Kubernetes Namespace 命名空间管理实战:资源隔离、默认命名空间与常用命令
网络·容器·kubernetes
好评1241 小时前
【Linux】传输层协议TCP
linux·网络·tcp/ip
数据知道1 小时前
恶意软件分析实验室搭建——沙箱、快照、网络隔离
网络·安全·web安全·网络安全
西柚小萌新1 小时前
【论文阅读】--AgentPoison:通过投毒记忆库或知识库对LLM智能体进行红队测试
网络·安全
秋田君2 小时前
Qt_webSocket协议编程实战
开发语言·qt·websocket
Fcy6482 小时前
Linux下 Socket编程 —— TCP网络编程
linux·网络·tcp/ip
IPdodo_2 小时前
静态 IP 访问异常排查:403/429 归因与迁移验收
服务器·网络·数据库·python·网络协议·php·性能测试
ouynagda2 小时前
HTTP协议与Socket网络编程笔记
网络·笔记·http
haerapi2 小时前
流式对话接口怎么选:SSE 与 WebSocket 的原理、实现和工程边界
网络·websocket·网络协议
砚凝霜3 小时前
【软考信息安全】第二章 网络攻击基础与常见技术方法
网络·安全·php