Документация:
# hub
dotnet run --project=ThinkingHome.Subway.Hub
# client
dotnet run --project=ThinkingHome.Subway.TestConsole
hub
— приложение, к которому есть доступ из внешней сети, проксирующее запросы на локальный сервер через signalrлокальный сервер
клиент
- Клиент отправляет запрос на hub. Hub сразу отвечает клиенту
OK
. После этого hub пытается передать запрос на локальный сервер с подтверждением доставки. - Клиент отправляет запрос на hub. Hub передает запрос на локальный сервер и ждет ответ (с таймаутом). Полученный ответ возвращает клиенту.
-
- Авторизация локального сервера через jwt (hub пишет токент в лог при старте).
-
- Авторизация клиентов по id устройства
-
авторизация клиентов
-
[авторизация локального сервера]
-
предоставлять схему локального сервера
-
причесать нейминг и файловую структуру
-
расставить
sealed
в классах-наследниках
Нужно создать навык с типом "Умный дом" на платформе Яндекс Диалоги (документация).
В настройках нужно указать адреса:
- Endpoint URL:
https://<domain>/service
- URL авторизации:
https://<domain>/oauth/authorize
- URL для получения токена:
https://<domain>/oauth/token
Сервер должен быть доступен снаружи и работать по https. Работает отладка через https://ngrok.com
получить сертификат: sudo certbot certonly --standalone
сконвертировать сертификат: sudo openssl pkcs12 -in /etc/letsencrypt/live/alice.thinking-home.ru/cert.pem -inkey /etc/letsencrypt/live/alice.thinkin.ru/privkey.pem -export -out merged.pfx
запустить на сервере: sudo dotnet run --project=ThinkingHome.Subway.Hub --urls=https://+:443