Succesfully receive message from websocket when new asset is uploaded
This commit is contained in:
parent
9bce627c98
commit
930e53eef2
2 changed files with 19 additions and 5 deletions
|
@ -44,6 +44,7 @@ class _ImmichAppState extends ConsumerState<ImmichApp> with WidgetsBindingObserv
|
|||
case AppLifecycleState.inactive:
|
||||
debugPrint("[APP STATE] inactive");
|
||||
ref.read(appStateProvider.notifier).state = AppStateEnum.inactive;
|
||||
ref.read(websocketProvider.notifier).disconnect();
|
||||
break;
|
||||
case AppLifecycleState.paused:
|
||||
debugPrint("[APP STATE] paused");
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:socket_io_client/socket_io_client.dart';
|
||||
|
@ -50,36 +51,48 @@ class WebsocketNotifier extends StateNotifier<WebscoketState> {
|
|||
var accessToken = Hive.box(userInfoBox).get(accessTokenKey);
|
||||
|
||||
try {
|
||||
debugPrint("Attempting to connect to ws");
|
||||
// Configure socket transports must be sepecified
|
||||
Socket socket = io(
|
||||
'http://192.168.1.216:2283/${authenticationState.userId}',
|
||||
'http://192.168.1.216:2283',
|
||||
OptionBuilder()
|
||||
.setTransports(['websocket'])
|
||||
.enableReconnection()
|
||||
.enableForceNew()
|
||||
.enableForceNewConnection()
|
||||
.enableAutoConnect()
|
||||
.setExtraHeaders({"Authorization": "Bearer $accessToken"})
|
||||
.build(),
|
||||
);
|
||||
|
||||
socket.onConnect((_) {
|
||||
debugPrint("Established Websocket Connection");
|
||||
state = WebscoketState(isConnected: true, socket: socket);
|
||||
});
|
||||
|
||||
socket.onDisconnect((_) {
|
||||
debugPrint("Disconnect to Websocket Connection");
|
||||
state = WebscoketState(isConnected: false, socket: null);
|
||||
});
|
||||
|
||||
socket.on('error', (errorMessage) {
|
||||
debugPrint("Webcoket Error - $errorMessage");
|
||||
state = WebscoketState(isConnected: false, socket: null);
|
||||
});
|
||||
|
||||
socket.onError((data) => print("error connect to web socket $data"));
|
||||
socket.on('on_connected', (data) => print("on connect msg from server $data"));
|
||||
socket.on(
|
||||
'on_upload_success',
|
||||
(data) => print("on new asset $data"),
|
||||
(data) => print("on new asset upload success $data"),
|
||||
);
|
||||
} catch (e) {
|
||||
print(e.toString());
|
||||
debugPrint("Catch Webcoket Error - ${e.toString()}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
state.socket?.disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
final websocketProvider = StateNotifierProvider<WebsocketNotifier, WebscoketState>((ref) {
|
||||
|
|
Loading…
Add table
Reference in a new issue