update socket code

This commit is contained in:
build@lguplus.co.kr 2023-11-28 06:58:54 +09:00
parent 04289debfd
commit bf57e08f92
2 changed files with 13 additions and 4 deletions

View file

@ -129,8 +129,6 @@ class ProtobufClient extends Communicator
void dispose()
{
_onDisconnectListenerList.clear();
_arrivedData.clear();
_socket.close();
}
}

View file

@ -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<ProtobufClient> _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 extends GeneratedMessage>(T data) async {
for(var client in _clientList) {
await client.send(data);
}
}
Future stop() async {
await _server?.close();
}
}