main.js:constsocket=newSockJS('http://192.168.1.107:8088/webSocketServer');Vue.prototype.$stompClient=Stomp.over(socket)index.vue:connect(){consttoken=this.$Cookies.get('token');this.$stompClient.connect({'token':token},(frame)=>{console.log('Connected:'+frame);this.$stompClient.subscribe('/user/queue/notifications',function(greeting){console.log(JSON.parse(greeting.body));});});},console:OpeningWebSocket...一直无法连接,但当我将服务器重启一次后就可以连接成功一次,然后就一直无法连接,必须将服务器重启而在index.vue中直接使用是没有任何问题的connect(){constsocket=newSockJS('http://192.168.1.107:8088/webSocketServer');this.stompClient=Stomp.over(socket);consttoken=this.$Cookies.get('token');this.stompClient.connect({'token':token},(frame)=>{console.log('Connected:'+frame);this.stompClient.subscribe('/user/queue/notifications',function(greeting){console.log(JSON.parse(greeting.body));});});},上下的区别仅仅是一个将Stomp注册到了原型上,一个是在页面方法内创建的,不明白为什么会一个错误,一个正常,注册到原型上之后只有重启服务器才能成功,之后所有的连接都是OpeningWebSocket...就连我换一个浏览器都不行
2 回答
鸿蒙传说
TA贡献1865条经验 获得超7个赞
我怀疑是ws服务器问题看了看又觉得不是,应该就是楼上说的问题你的问题描述太误导人了你可以试试,挂在原型链上,不重启服务器,而是重启浏览器,也是每次第一次连接可以成功
繁花不似锦
TA贡献1851条经验 获得超4个赞
部分源代码:over:function(ws){returnnewClient(ws);};函数内部newClient,返回新的对象,Stomp.over(socket)执行一次就是一个新对象;varobj=newObject({a:1});varobj1=newObject({a:1});obj==obj1//falsethis.stompClient=Stomp.over(socket);//这个使用的是一个对象所以没有问题如果想使用原型赋值给一个变量,this.xx=this.$stompClient
添加回答
举报
0/150
提交
取消