Files
PotatoMessenger/server/bin/server.dart
fegor101 c375eca7b8 (WIP) Add network test
- Network tested
 - Some UI updates
2026-04-13 20:00:38 +03:00

39 lines
1.6 KiB
Dart

// server/bin/server.dart
import 'dart:convert';
import 'dart:io';
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as io;
import 'package:shelf_router/shelf_router.dart';
// Подключаем нашу модель (путь зависит от того, как назван твой пакет shared в pubspec)
import 'package:shared/models/message.dart';
void main() async {
final router = Router();
// Настраиваем обработчик POST-запроса на адрес /send
router.post('/send', (Request request) async {
// Читаем тело запроса (в виде строки)
final payload = await request.readAsString();
// Превращаем строку JSON обратно в объект Message
final message = Message.fromJson(payload);
print('📩 Получено новое сообщение!');
print('--> Чат: ${message.chatId}');
print('--> Текст: ${message.msg}');
// Возвращаем ответ клиенту (Статус 200 OK)
return Response.ok(
jsonEncode({'status': 'ok'}),
headers: {'Content-Type': 'application/json'},
);
});
// Pipeline добавляет удобное логирование каждого запроса в консоль
final handler = Pipeline().addMiddleware(logRequests()).addHandler(router.call);
// Запускаем сервер на всех интерфейсах (0.0.0.0) и порту 6432
final server = await io.serve(handler, '0.0.0.0', 6432);
print('🚀 Сервер запущен на http://${server.address.host}:${server.port}');
}