Полный рефакторинг сервера и клиента, голосовые сообщения, аудио/видео, Docker
Сервер: - Вынесена конфигурация в server/config.js (порт, размер файла из env) - Вынесена аутентификация в server/auth.js (загрузка users.json, authenticate()) - Вынесено управление соединениями в server/clients.js (createJsonSender, broadcast, validateFile) - server/server.js стал точкой входа — минимальный код Клиент: - Вынесены хуки: hooks/useWebSocket.js (WebSocket + auth), hooks/useChatMessages.js (сообщения + уведомления) - Вынесены утилиты: utils/blob.js (base64 → Blob URL), utils/linkify.jsx (URL → ссылки), utils/notify.js (звук + favicon) Новые функции: - VoiceRecorder — запись голоса через MediaRecorder, отправка как файл - Аудио/видео плеер в Message (audio/*, video/* с controls) - URL linkification — http/https ссылки автоматически кликабельны - Звуковое уведомление (Web Audio API) при сообщении на неактивной вкладке - Красная точка на favicon при непрочитанных сообщениях Инфраструктура: - docker-entrypoint.sh: авто-перезапуск Node.js сервера при падении - Обновлён README.md: новая структура проекта, список функций, примеры - Кастомный тонкий скроллбар в Message.css
This commit is contained in:
+19
-8
@@ -1,16 +1,27 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# Start nginx in foreground
|
||||
nginx -g 'daemon off;' &
|
||||
NGINX_PID=$!
|
||||
|
||||
# Start WebSocket server
|
||||
node /server/server.js &
|
||||
NODE_PID=$!
|
||||
trap 'kill $NGINX_PID 2>/dev/null; exit' SIGTERM SIGINT SIGQUIT
|
||||
|
||||
# Forward signals to both processes
|
||||
trap 'kill $NGINX_PID $NODE_PID 2>/dev/null; exit' SIGTERM SIGINT
|
||||
shutdown() {
|
||||
kill $NGINX_PID 2>/dev/null
|
||||
exit
|
||||
}
|
||||
|
||||
# Exit if node server stops
|
||||
wait $NODE_PID
|
||||
while true; do
|
||||
node /server/server.js &
|
||||
NODE_PID=$!
|
||||
trap 'kill $NODE_PID $NGINX_PID 2>/dev/null; exit' SIGTERM SIGINT SIGQUIT
|
||||
wait $NODE_PID
|
||||
EXIT_CODE=$?
|
||||
|
||||
if [ $EXIT_CODE -eq 0 ] || [ $EXIT_CODE -eq 143 ] || [ $EXIT_CODE -eq 130 ] || [ $EXIT_CODE -eq 137 ]; then
|
||||
shutdown
|
||||
fi
|
||||
|
||||
echo "Server exited with code $EXIT_CODE, restarting in 1 second..."
|
||||
sleep 1
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user