Files
sevenhill f74057ce9b
Build Android (FCM) / build-android-fcm (push) Canceled after 0s
Build Android / build-android (push) Canceled after 0s
Build iOS / build-ios (push) Canceled after 0s
Build Linux / build-linux (push) Canceled after 0s
Build macOS / build-macos (push) Canceled after 0s
Build Windows / build-windows (push) Canceled after 0s
Release (main) / android (oneme) (push) Canceled after 0s
Release (main) / android (qlyra) (push) Canceled after 0s
Release (main) / windows (push) Canceled after 0s
Release (main) / linux (push) Canceled after 0s
Release (main) / macos (push) Canceled after 0s
Release (main) / ios (push) Canceled after 0s
Release (main) / release (push) Canceled after 0s
Rebrand application as Qlyra
2026-08-30 13:16:17 +03:00

49 lines
1.4 KiB
Dart

import 'dart:convert';
import 'dart:io';
import 'package:kolibri/kolibri.dart';
Future<void> main() async {
final lib = Platform.environment['KOLIBRI_LIB'] ??
'rust/target/debug/libkolibri_dart.dylib';
await initKolibri(libraryPath: lib);
var gotPong = false;
final server = await HttpServer.bind('127.0.0.1', 0);
server.listen((req) async {
final ws = await WebSocketTransformer.upgrade(req);
ws.add('ping');
ws.listen((msg) {
if (msg == 'pong') {
gotPong = true;
return;
}
final v = jsonDecode(msg as String);
ws.add(jsonEncode(
{'sequence': v['sequence'], 'response': v['command'], 'type': 'response'}));
if (v['command'] == 'accept-call') {
ws.add(jsonEncode(
{'type': 'notification', 'notification': 'connection', 'topology': 'P2P'}));
}
});
});
final sig = await connectCallSignaling(url: 'ws://127.0.0.1:${server.port}/ws2');
final notifs = <String>[];
final sub = sig.notifications().listen(notifs.add);
print('accept-call : ${await sig.acceptCall()}');
await sig.transmitSdp(participantId: 42, sdpType: 'offer', sdp: 'v=0...');
await Future<void>.delayed(const Duration(milliseconds: 300));
print('notification: ${notifs.isNotEmpty ? notifs.first : "(none)"}');
print('got pong : $gotPong');
print('connected : ${sig.isConnected()}');
await sub.cancel();
sig.close();
await server.close(force: true);
exit(0);
}