initSocketServer method
Implementation
void initSocketServer(String roomId, BuildContext context) {
// if (socketioRoomId != "" && socketioRoomId != roomId) {
// print("leave");
// socket.emit('leaveRoom', socketioRoomId);
// socket.emit('joinRoom', roomId);
// print("contc");
// socketioRoomId = roomId;
// }
if (socket.connected) {
return;
}
socket.connect();
socket.on('connect', (_) {
socketioRoomId = roomId;
socket.emit('joinRoom', socketioRoomId);
});
// Event Listenner
socket.on("broadcast", (data) async {
if (data is Map && data.containsKey('transactionId')) {
final id = data['transactionId'];
print(id);
// if (id != null) {
// socket.emit('leaveRoom', socketioRoomId);
// }
if (cachedData.data.checkoutPageConfig.displaySuccessPage == false) {
String? referrerId = B24PaymentSdk.storeReferrerID;
final checkoutReponse = await fetchDataFromApi(id, referrerId!);
final tranIfoSuccesss = checkoutReponse.data.transInfo;
final billerInfoSuccess = checkoutReponse.data.biller;
final checkConfage = checkoutReponse.data.checkoutPageConfig;
Navigator.of(context).popUntil((route) => route.isFirst);
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => ScreenSuccess(
biller: billerInfoSuccess,
transInfo: tranIfoSuccesss,
checkoutPageConfig: checkConfage,
),
),
);
} else {
final redirectUrl = cachedData.data.transInfo.redirectUrl;
// final url = Uri.parse(redirectUrl);
GoRouter.of(context).go(redirectUrl);
}
}
});
}