4
2
Fork 0

fix: catching errors on event source disconnect

pull/45/head
Sudharshan S. 2019-04-02 11:14:09 +08:00
parent 584e9579fb
commit 8bdf5f7adc
Signed by: sudharshan
GPG Key ID: C861C97AAF3D9559
2 changed files with 18 additions and 3 deletions

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -5,6 +5,7 @@ import "dart:ui";
import 'package:eventsource/eventsource.dart';
import "package:rxdart/rxdart.dart";
import "package:http/http.dart" as http;
import "../models/ping_model.dart";
import "../services/login_manager.dart";
@ -18,16 +19,19 @@ class HeartbeatReceiverBloc {
String status;
final _coloursFetcher = PublishSubject<Color>();
final http.Client client;
Observable<Color> get colours => _coloursFetcher.stream;
HeartbeatReceiverBloc(String userId) {
HeartbeatReceiverBloc(String userId) : client = http.Client() {
this.userId = userId;
lastSeen = DateTime.fromMillisecondsSinceEpoch(0);
status = "";
loginManager.getToken().then((token) {
print(token);
EventSource.connect("$baseUrlHeartbeat/subscribe/$userId?token=$token")
EventSource.connect("$baseUrlHeartbeat/subscribe/$userId?token=$token",
client: client)
.then((es) {
es.listen((Event event) {
Ping ping = Ping.fromJson(jsonDecode(event.data));
@ -50,11 +54,14 @@ class HeartbeatReceiverBloc {
}
}
});
});
}).catchError((e) => print(
e)); // Add actual error handling logic for stopped connections
});
}
dispose() {
print("Destroying bloc");
_coloursFetcher.close();
client.close();
}
}