Corrigir sincronizacao automatica do RustDesk com o backend
- Corrigir indentacao do useEffect que dispara ensureRustdesk - Adicionar logs detalhados em handleRustdeskProvision e ensureRustdesk - Logs ajudam a diagnosticar falhas na sincronizacao do acesso remoto 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
01a16b7e5e
commit
736282a805
1 changed files with 36 additions and 13 deletions
|
|
@ -831,40 +831,63 @@ const resolvedAppUrl = useMemo(() => {
|
||||||
|
|
||||||
const handleRustdeskProvision = useCallback(
|
const handleRustdeskProvision = useCallback(
|
||||||
async (payload: RustdeskProvisioningResult) => {
|
async (payload: RustdeskProvisioningResult) => {
|
||||||
if (!store) return
|
logDesktop("rustdesk:provision:start", { id: payload.id, hasStore: !!store })
|
||||||
|
if (!store) {
|
||||||
|
logDesktop("rustdesk:provision:skip:no-store")
|
||||||
|
return
|
||||||
|
}
|
||||||
const normalized: RustdeskInfo = {
|
const normalized: RustdeskInfo = {
|
||||||
...payload,
|
...payload,
|
||||||
installedVersion: payload.installedVersion ?? null,
|
installedVersion: payload.installedVersion ?? null,
|
||||||
lastSyncedAt: rustdeskInfoRef.current?.lastSyncedAt ?? null,
|
lastSyncedAt: rustdeskInfoRef.current?.lastSyncedAt ?? null,
|
||||||
lastError: null,
|
lastError: null,
|
||||||
}
|
}
|
||||||
await writeRustdeskInfo(store, normalized)
|
try {
|
||||||
|
await writeRustdeskInfo(store, normalized)
|
||||||
|
logDesktop("rustdesk:provision:saved", { id: normalized.id })
|
||||||
|
} catch (error) {
|
||||||
|
logDesktop("rustdesk:provision:save-error", { error: String(error) })
|
||||||
|
throw error
|
||||||
|
}
|
||||||
setRustdeskInfo(normalized)
|
setRustdeskInfo(normalized)
|
||||||
await syncRemoteAccessNow(normalized)
|
try {
|
||||||
|
await syncRemoteAccessNow(normalized)
|
||||||
|
logDesktop("rustdesk:provision:synced", { id: normalized.id })
|
||||||
|
} catch (error) {
|
||||||
|
logDesktop("rustdesk:provision:sync-error", { error: String(error) })
|
||||||
|
}
|
||||||
},
|
},
|
||||||
[store, syncRemoteAccessNow]
|
[store, syncRemoteAccessNow]
|
||||||
)
|
)
|
||||||
|
|
||||||
const ensureRustdesk = useCallback(async () => {
|
const ensureRustdesk = useCallback(async () => {
|
||||||
if (!store) return null
|
logDesktop("rustdesk:ensure:start", { hasStore: !!store, machineId: config?.machineId ?? null })
|
||||||
|
if (!store) {
|
||||||
|
logDesktop("rustdesk:ensure:skip:no-store")
|
||||||
|
return null
|
||||||
|
}
|
||||||
if (!config?.machineId) {
|
if (!config?.machineId) {
|
||||||
logDesktop("rustdesk:skip:no-machine-id")
|
logDesktop("rustdesk:skip:no-machine-id")
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
setIsRustdeskProvisioning(true)
|
setIsRustdeskProvisioning(true)
|
||||||
try {
|
try {
|
||||||
|
logDesktop("rustdesk:ensure:invoking", { machineId: config.machineId })
|
||||||
const payload = await invoke<RustdeskProvisioningResult>("ensure_rustdesk_and_emit", {
|
const payload = await invoke<RustdeskProvisioningResult>("ensure_rustdesk_and_emit", {
|
||||||
configString: RUSTDESK_CONFIG_STRING || null,
|
configString: RUSTDESK_CONFIG_STRING || null,
|
||||||
password: RUSTDESK_DEFAULT_PASSWORD || null,
|
password: RUSTDESK_DEFAULT_PASSWORD || null,
|
||||||
machineId: config.machineId,
|
machineId: config.machineId,
|
||||||
})
|
})
|
||||||
|
logDesktop("rustdesk:ensure:invoked", { id: payload.id, version: payload.installedVersion })
|
||||||
await handleRustdeskProvision(payload)
|
await handleRustdeskProvision(payload)
|
||||||
|
logDesktop("rustdesk:ensure:complete", { id: payload.id })
|
||||||
return payload
|
return payload
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const message = error instanceof Error ? error.message : String(error)
|
const message = error instanceof Error ? error.message : String(error)
|
||||||
if (message.toLowerCase().includes("apenas no windows")) {
|
if (message.toLowerCase().includes("apenas no windows")) {
|
||||||
console.info("Provisionamento do RustDesk ignorado (plataforma não suportada)")
|
console.info("Provisionamento do RustDesk ignorado (plataforma não suportada)")
|
||||||
} else {
|
} else {
|
||||||
|
logDesktop("rustdesk:ensure:error", { error: message })
|
||||||
console.error("Falha ao provisionar RustDesk", error)
|
console.error("Falha ao provisionar RustDesk", error)
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
|
|
@ -907,16 +930,16 @@ const resolvedAppUrl = useMemo(() => {
|
||||||
ensureRustdesk().finally(() => {
|
ensureRustdesk().finally(() => {
|
||||||
rustdeskBootstrapRef.current = false
|
rustdeskBootstrapRef.current = false
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
|
||||||
if (rustdeskInfo && !isRustdeskProvisioning) {
|
|
||||||
const lastSync = rustdeskInfo.lastSyncedAt ?? 0
|
|
||||||
const needsSync = Date.now() - lastSync > RUSTDESK_SYNC_INTERVAL_MS
|
|
||||||
if (needsSync) {
|
|
||||||
syncRemoteAccessNow(rustdeskInfo)
|
|
||||||
}
|
}
|
||||||
}
|
if (rustdeskInfo && !isRustdeskProvisioning) {
|
||||||
}, [store, config?.machineId, rustdeskInfo, ensureRustdesk, syncRemoteAccessNow, isRustdeskProvisioning])
|
const lastSync = rustdeskInfo.lastSyncedAt ?? 0
|
||||||
|
const needsSync = Date.now() - lastSync > RUSTDESK_SYNC_INTERVAL_MS
|
||||||
|
if (needsSync) {
|
||||||
|
syncRemoteAccessNow(rustdeskInfo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, [store, config?.machineId, rustdeskInfo, ensureRustdesk, syncRemoteAccessNow, isRustdeskProvisioning])
|
||||||
|
|
||||||
async function register() {
|
async function register() {
|
||||||
if (!profile) return
|
if (!profile) return
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue