feat: WS-протокол очки↔телефон + app-host (JVM Ktor-сервер)
lib-core (commonMain): - Messages.kt: GlassesToHost (hello, gesture, glasses_status, playback_position, glasses_off) - HostToGlasses.kt: Welcome, SetMode, MediaCommandMsg, PlayVideo, AssistantStateMsg, ShowText, ChatSessionMsg - AssistantState enum (IDLE/LISTENING/THINKING/SPEAKING) - round-trip тесты сериализации обоих направлений app-host (переведён с Android на JVM): - Ktor WS-сервер 0.0.0.0:8080/ws/glasses — очки подключаются как WS-клиенты - GlassesHub: broadcast всем очкам, счётчик подключений (StateFlow) - консольный ввод: play/mode/state/text/session/cmd/exit — команды от «телефона» - логирование всех сообщений обоих направлений - HostServerTest: hello→welcome, счётчик подключений Проверено: сборка зелёная, 21 тест 0 провалов, живой WS-цикл (hello→welcome, gesture, статус, позиция, glasses_off)
This commit is contained in:
@@ -5,6 +5,8 @@ plugins {
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvmToolchain(17)
|
||||
|
||||
androidTarget {
|
||||
compilerOptions {
|
||||
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
|
||||
@@ -17,6 +19,9 @@ kotlin {
|
||||
implementation(libs.kotlinx.serialization.json)
|
||||
implementation(libs.kotlinx.coroutines.core)
|
||||
}
|
||||
commonTest.dependencies {
|
||||
implementation(kotlin("test"))
|
||||
}
|
||||
androidMain.dependencies {
|
||||
implementation(libs.kotlinx.coroutines.android)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user