initSocketServer method

void initSocketServer(
  1. String roomId,
  2. BuildContext context
)

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);
      }
    }
  });
}