У меня есть канал, где пользователи могут голосовать за сообщения
Сервер> узел, express, socket.io v2.3.0
Сервер> приложение. js
client.on('connection', socket =>{
socket.emit('success', {message: 'Server Accecpting Connections'});
// CLients connected
client.clients((error, clients) => {
if (error) throw error;
console.log(`<----- users connected ->`)
console.log(clients);
console.log(' ');
})
// Disconnected user
socket.on('disconnect',() =>{
console.log(`user disconnected ---> ${socket.id}`);
console.log(' ');
})
})
Сервер> voicePost. js
const votePost = function(client){
client.on('connection', socket =>{
socket.on('votePost',async post =>{
try {
// logic
socket.emit('postVoted', {updatedPost})
}
} catch (error) {
console.log(error);
}
module.exports = votePost
Клиент> vue CLI, vuex, socket.io v2 .3.0, vue -socket.io v3.0.7
Клиент> main. js "Конфигурация:"
import VueSocketIO from 'vue-socket.io'
import SocketIO from "socket.io-client"
Vue.use(new VueSocketIO({
debug: true,
connection: SocketIO('http://localhost:3000'), //options object is Optional
vuex: {
store,
actionPrefix: "SOCKET_",
mutationPrefix: "SOCKET_"
}
})
);
Проверка соединения с сервером на post модуль vuex внутри действий Получение успешного сообщения от сервера (все подключенные сокеты видят это сообщение)
"SOCKET_success"(state, server) {
console.log(server.message);
},
Передача данных на сервер от компонента внутри методов:
createVote(data){
const post = {SOMEPOSTDATA}
this.$socket.emit('votePost', post)
},
Получение данных, созданных с сервера: Модуль почты vuex (внутри действий)
"SOCKET_updatedPost"({commit,state}, server) {
state.post = server.updatedPost
},
На этом этапе я получаю сообщение, обновленное с сервера, и обновляю мой состояние, где я вижу обновленный. НО Мне нужно каждый раз, чтобы увидеть обновленное сообщение тоже
Почему это происходит? Что мне не хватает ?, все пользователи предполагают видеть изменения, когда кто-то обновляет его