From bf57e08f92d7921a33cafb5aa9416f62e9c80e31 Mon Sep 17 00:00:00 2001 From: "build@lguplus.co.kr" Date: Tue, 28 Nov 2023 06:58:54 +0900 Subject: [PATCH] update socket code --- lib/socket/protobuf_client.dart | 2 -- lib/socket/protobuf_server.dart | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/socket/protobuf_client.dart b/lib/socket/protobuf_client.dart index b645212..cc4a484 100644 --- a/lib/socket/protobuf_client.dart +++ b/lib/socket/protobuf_client.dart @@ -129,8 +129,6 @@ class ProtobufClient extends Communicator void dispose() { - _onDisconnectListenerList.clear(); - _arrivedData.clear(); _socket.close(); } } diff --git a/lib/socket/protobuf_server.dart b/lib/socket/protobuf_server.dart index a558fd9..cbb0f48 100644 --- a/lib/socket/protobuf_server.dart +++ b/lib/socket/protobuf_server.dart @@ -4,11 +4,12 @@ import 'dart:io'; import 'package:dart_framework/socket/packets/message_common.pb.dart'; import 'package:dart_framework/socket/protobuf_client.dart'; import 'package:dart_framework/utils/system_util.dart'; +import 'package:protobuf/protobuf.dart'; abstract class ProtobufServer { List _clientList = []; - late ServerSocket _server; + late ServerSocket? _server; final String _host; final int _port; final ProtobufClient Function(Socket) _createNewClient; @@ -18,7 +19,7 @@ abstract class ProtobufServer Future start() async { _server = await ServerSocket.bind(_host, _port); - _server.listen((Socket socket) { + _server?.listen((Socket socket) { var client = _createNewClient(socket); client.addDisconnectListener(onDisconnectedClient); client.addListener(onTemplateData); @@ -46,4 +47,14 @@ abstract class ProtobufServer template.message = 'This message from flutter'; _clientList[0].send(template); } + + Future broadcast(T data) async { + for(var client in _clientList) { + await client.send(data); + } + } + + Future stop() async { + await _server?.close(); + } }