fix(install): LiveKit перезапускается при изменении конфига
LiveKit читает livekit.yaml только при старте, а compose не замечает правок в примонтированном файле — из-за этого вебхуки не включались после обновления. Установщик сравнивает sha256 конфига с сохранённым и перезапускает сервис.
This commit is contained in:
@@ -30,6 +30,8 @@ import {
|
||||
import { useFriendsStore } from '@/stores/friends';
|
||||
import { useMessagesStore } from '@/stores/messages';
|
||||
import { useSessionStore } from '@/stores/session';
|
||||
import { useVoiceConnectionStore } from '@/stores/voiceConnection';
|
||||
import { parseVoiceStateEvent } from '@/api/voice';
|
||||
|
||||
/**
|
||||
* Состояние соединения со шлюзом. Данные приходят в session-store,
|
||||
@@ -78,6 +80,8 @@ export const useGatewayStore = create<GatewayState>((set, get) => ({
|
||||
useSessionStore.getState().reset();
|
||||
// Сессия мертва: лента сообщений тоже больше не наша.
|
||||
useMessagesStore.getState().reset();
|
||||
// Голосовую комнату покидаем без запроса: сессии уже нет.
|
||||
useVoiceConnectionStore.getState().reset();
|
||||
void invalidateCurrentUser();
|
||||
},
|
||||
onResumeIncomplete: () => {
|
||||
@@ -309,6 +313,21 @@ export function dispatchGatewayEvent(event: GatewayDispatch): void {
|
||||
}
|
||||
return;
|
||||
}
|
||||
case 'VOICE_STATE_UPDATE': {
|
||||
// Лёг из комнаты или сменил флаги: единственный источник «кто в голосе».
|
||||
const voice = parseVoiceStateEvent(event.d);
|
||||
if (voice === null) {
|
||||
return;
|
||||
}
|
||||
if (voice.kind === 'left') {
|
||||
session.applyVoiceLeave(voice.guildId, voice.userId);
|
||||
} else {
|
||||
session.applyVoiceState(voice.state);
|
||||
}
|
||||
// server_mute/server_deaf и перемещение себя применяем к своей сессии.
|
||||
useVoiceConnectionStore.getState().syncServerState();
|
||||
return;
|
||||
}
|
||||
default:
|
||||
// Неизвестные события игнорируем: контракт может расширяться.
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user