creating first structure of cinema backend server

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2025-11-16 00:01:14 +01:00
parent 92da4423b2
commit a5d9372806
15 changed files with 362 additions and 58 deletions

View File

@@ -0,0 +1,28 @@
import 'package:injectable/injectable.dart';
import 'package:shelf/shelf.dart';
import 'package:shelf_web_socket/shelf_web_socket.dart';
@LazySingleton()
class WebSocketService {
final List<dynamic> _clients = [];
Handler get handler => webSocketHandler((webSocket, _) {
_clients.add(webSocket);
print('Client connected, total: ${_clients.length}');
webSocket.stream.listen(
(message) {
webSocket.sink.add('echo $message');
},
onDone: () {
_clients.remove(webSocket);
print('Client disconnected, total: ${_clients.length}');
},
onError: (error) {
_clients.remove(webSocket);
print('Client error: $error');
},
cancelOnError: true,
);
});
}