通过<script>安装时Vue.use之后出现TypeError

时间:2018-07-26 09:56:18

标签: vue.js websocket vuejs2

我必须通过

脚本加载vue-native-websocket
  
  
  
 

这是我的 OrdersCurrent.js

  Vue.use(VueNativeSock,'wss:// localhost / ws / current-orders / 1',{
  重新连接:是的,
  重新连接尝试:5,
  reconnectionDelay:3000,
  格式:“ json”,
});

var app = new Vue({
  el:“#orders-current-app”,
  分隔符:['{*','*}'],
  创建:函数(){
    var vm = this;
    this。$ options.sockets.onmessage =函数(数据){
      vm.messageReceived(data);
    }
  },
  数据:{
    讯息:“嗨Vue!”
  },
  方法: {
    sendMessage:函数(事件){
      消息= event.target.value;
      this。$ socket.sendObj({message:message});
      event.target.value =''
    },
    receiveMessage:function(websocketMessage){
      var data = JSON.parse(websocketMessage.data);
      this.messages.push(data.message);
    }
  }
});
 

类似于 Vue.use 在这种情况下不起作用。我收到以下错误

  vue.js:597 [Vue警告]:创建的挂钩中发生错误:“ TypeError:无法设置未定义的属性'onmessage'

(位于中)
警告@ vue.js:597
logError @ vue.js:1739
globalHandleError @ vue.js:1734
handleError @ vue.js:1723
callHook @ vue.js:2923
Vue._init @ vue.js:4617
Vue @ vue.js:4716
(匿名)@ OrdersCurrent.js:8
vue.js:1743 TypeError:无法设置未定义的属性'onmessage'
    在Vue.created(OrdersCurrent.js:13)
    在callHook(vue.js:2921)
    在Vue._init(vue.js:4617)
    在新的Vue(vue.js:4716)
    在OrdersCurrent.js:8
 

1 个答案:

答案 0 :(得分:0)

需要使用VueNativeSock.default而不是VueNativeSock。 CDN上尚未安装vue-native-script插件。

Vue.use(VueNativeSock, 'wss://localhost/ws/current-orders/1', {
  reconnection: true,
  reconnectionAttempts: 5,
  reconnectionDelay: 3000,
  format: 'json',
});