у меня есть такой код на фронте
connection = new WebSocket('ws://localhost:1000/' + this.phoneNumber)
connection.onmessage = async msg => {
msg = JSON.parse(msg.data)
console.log(msg)
if (msg.action === 'registeredNewFire' && this.userData.typeOfUser === 'fireman') {
const message = {
action: 'takeCall',
agent: 'fireMan',
data: {
fireManId: this.userData._id,
causing: msg.data.resultRegistrationNewFire.causing,
currentFireId: msg.data.resultRegistrationNewFire._id
}
}
connection.send(JSON.stringify(message))
}
if (msg.action === 'fireTruckDispatched') {
this.activeFireManPhoneNumber = msg.data.fireManPhoneNumber
console.log(this.activeFireManPhoneNumber, 'dispatched')
}
if (msg.action === 'startGeoDataTransfering') {
const geoDataTranfering = {
action: 'geoDataTransfering',
agent: 'fireMan',
data: {
phoneNumber: msg.data.causingPhoneNumber,
message: {
latitude: Math.floor(Math.random() * 100) + 1,
altitude: Math.floor(Math.random() * 100) + 1
}
}
}
this.activeCausingPhoneNumber = msg.data.causingPhoneNumber
this.loopKey = setInterval(() => connection.send(JSON.stringify(geoDataTranfering)), 500)
console.log(this.loopKey)
}
if (msg.action === 'fireBrigadeArrived') {
console.log(loopKey, true)
clearInterval(loopKey)
}
}
},
methods: {
brigadeArrived () {
const message = {
action: 'fireBrigadeArrived',
agent: 'client',
data: {
fireManPhoneNumber: this.activeFireManPhoneNumber,
loopKey: this.loopKey
}
}
console.log(message)
connection.send(JSON.stringify(message))
}
}
и такой кусок из бэка
// fire brigade Arrived
if (msg.action === 'fireBrigadeArrived') {
const messageForFireBrigadeArrived = {
action: 'fireBrigadeArrived',
agent: 'server',
data: {
result: true
}
}
for (let clientForFireBrrigadeArrived of clients) {
if (clientForFireBrrigadeArrived.phoneNumber === msg.data.fireManPhoneNumber) {
clientForFireBrrigadeArrived.connection.send(JSON.stringify(messageForFireBrigadeArrived))
}
}
}
вообщем при получении определенного сообщения на фронте через вебсокет я включаю setInterval и таким способом я как бы постоянно отправляю сообщения на бэк с интервалом в 500мс, проблема в том что когда я отправляю с фронта другое сообщение на бэк что бы он отправил это сообщение на фронт и остановил setInterval, это происходит здесь if (msg.action === 'fireBrigadeArrived'), дело в том что он даже не заходит в этот if хотя я вроде как все проверил сообщение отправляется, action такой же он должен туда зайти но ничего не работает я уже ничего не понимаю, я думаю может это изза setInterval типо он не позволяет получать остальные сообщения но я хз, если это так то как это обойти помогите пожалуйста