Vue.js Nuxt:Vuex在vuejs组件外部提交或分派消息

Vue.js Nuxt:Vuex在vuejs组件外部提交或分派消息,vue.js,vuejs2,vuex,nuxt.js,Vue.js,Vuejs2,Vuex,Nuxt.js,我有一个nuxt中的应用程序,我想连接到websocket,我见过一些例子,其中接收消息的回调放在一个组件中,但我认为并不理想,我想把回调放在我的存储中,目前我的代码是这样的 //I'm using phoenix websocket var ROOT_SOCKET = `wss://${URL}/socket`; var socket = new Socket(ROOT_SOCKET); socket.connect() var chan = socket.channel(`connect

我有一个nuxt中的应用程序,我想连接到websocket,我见过一些例子,其中接收消息的回调放在一个组件中,但我认为并不理想,我想把回调放在我的存储中,目前我的代码是这样的

//I'm using phoenix websocket
var ROOT_SOCKET = `wss://${URL}/socket`;

var  socket = new Socket(ROOT_SOCKET);
socket.connect()
var chan = socket.channel(`connect:${guid}`); 

chan.join();
console.log("esperando mensj");

chan.on("translate", payload => {
  console.log(JSON.stringify(payload));
  <store>.commit("loadTranslation",payload) //<- how can I access to my store?
})

chan.onError(err => console.log(`ERROR connecting!!! ${err}`));


const createStore = () => {
  return new Vuex.Store({
   state: {},

   mutations:{
    loadTranslation(state,payload){...}
   },


....
})}
//我正在使用phoenix websocket
var ROOT_SOCKET=`wss://${URL}/SOCKET`;
var插座=新插座(根插座);
socket.connect()
var chan=socket.channel(`connect:${guid}`);
陈.join();
console.log(“世界语mensj”);
chan.on(“翻译”,有效载荷=>{
log(JSON.stringify(payload));
.commit(“loadTranslation”,payload)//console.log(`ERROR connecting!!!${err}`));
常量createStore=()=>{
返回新的Vuex.Store({
国家:{},
突变:{
loadTranslation(状态,有效负载){…}
},
....
})}
我如何访问我自己的存储文件中的存储并进行提交???有可能吗?。。。 我知道有一个vuex插件,但我不能很好地理解文档,我更喜欢在没有该插件的情况下构建它


谢谢你们…希望你们能帮我…

你们可以在nuxt插件中完成


您的websocket连接将在商店建立之前建立。
export default {
  plugins: ['~/plugins/chat.js']
}

// chat.js
export default ({ store }) => {
   your code that use store here
}