42 lines
1 KiB
Dart
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);
|
|
}
|
|
}
|