39 lines
1.6 KiB
Dart
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}');
|
|
} |