Files
hub/frontend/lib/backend.dart
T

49 lines
1022 B
Dart

import 'dart:html';
import 'dart:convert';
class Backend {
static WebSocket? _socket;
static String? _url;
static void setup(String url) {
_url = url;
connect();
}
static void auth(username) {
_socket!.send(
json.encode({'username': username})
);
}
static void connect() {
_socket = WebSocket(_url!);
_socket!.onOpen.listen((event) {
print('Connected to the WebSocket server');
auth("the-user");
ping();
});
_socket!.onError.listen((event) {
print('Error: $event');
_reconnect();
});
_socket!.onClose.listen((event) {
print('Disconnected. Attempting to reconnect...');
_reconnect();
});
}
static void _reconnect() {
Future.delayed(Duration(seconds: 5), () {
connect();
});
}
static void ping() {
if (_socket != null && _socket!.readyState == WebSocket.OPEN) {
final data = json.encode({'path': 'ping'});
_socket!.send(data);
print('Ping sent: $data');
}
}
}