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

相关推荐
赛博三把手18 小时前
Claude Fable 5 API 调用完整指南:官方、AWS、OpenRouter 与中转平台对比(2026 最新)
网络·云计算·aws
Meya11271 天前
不同规模机房怎么选 U 位系统?8 柜小型机房、40 柜数据中心完整选型参考
服务器·网络·数据库
大E帝国子民11 天前
OpenCloudOS Server 9 安装 Nginx 完整指南
前端·网络·nginx
m0_738120721 天前
PHP代码审计基础——面向对象(四)
android·开发语言·网络·安全·github·php
Geeys1 天前
拼多多新店快速起流量完整实操
大数据·网络·人工智能
玖玥拾1 天前
C# 语言进阶(十四)Unity UI界面开发 + 网络消息联动
服务器·开发语言·网络·ui·unity·c#·游戏引擎
hbugs0011 天前
PNETLab vs EVE-NG Pro 流量洞察功能底层架构技术白皮书
网络·架构·eve-ng·bpf·流量洞察
不会C语言的男孩1 天前
TCP通信可视化工具,含下载地址
服务器·网络·安全
五五六六05241 天前
2026盘古石杯初赛
网络
玖玥拾1 天前
C# 语言进阶(十三)网络 DLL 库分层设计
服务器·开发语言·网络·网络协议·c#