dart-app-core/lib/socket/protobuf_server.dart
build@lguplus.co.kr 6d66dc938d add protobuf socket
2023-11-25 02:04:16 +09:00

42 lines
1 KiB
Dart

// ignore_for_file: avoid_print, prefer_final_fields
import 'dart:io';
import 'package:dart_framework/socket/packets/message_common.pb.dart';
import 'package:dart_framework/socket/protobuf_client.dart';
class ProtobufServer
{
late ServerSocket _server;
List<ProtobufClient> _clientList = [];
String _host;
int _port;
ProtobufServer(this._host, this._port);
Future start() async
{
_server = await ServerSocket.bind(_host, _port);
_server.listen((Socket socket) {
var client = ProtobufClient(socket);
client.addDisconnectListener(onDisconnectedClient);
client.addListener(onTestSocket);
_clientList.add(client);
});
}
void onDisconnectedClient(ProtobufClient client)
{
_clientList.remove(client);
client.dispose();
print('Client disconnected');
}
void onTestSocket(TemplateData data)
{
print(data.message);
var test = TemplateData();
test.index = 3125;
test.message = 'This message from flutter';
_clientList[0].send(test);
}
}