- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 640
Closed
Labels
⌛ reproduction neededIssue is subtle and requires a true accessible reproduction to debugIssue is subtle and requires a true accessible reproduction to debugPriority: Waiting to be assignedTo be inside the next release process, it need to be marked with some level of priorityTo be inside the next release process, it need to be marked with some level of priority
Description
Postman.
 
example code of subs
Future<Map<String, dynamic>> subscription() async {
    try {
      final graphqlEndpoint = 'https://BASEURL/graphql';
      final subscriptionEndpoint =
          'wss://BASEURL/graphql/realtime?header=<EncodedHeader>&payload=e30=';
      var currentToken = _token();
      final HttpLink httpLink = HttpLink(
        graphqlEndpoint,
        defaultHeaders: {
          'Authorization': "Bearer $currentToken",
          'Sec-WebSocket-Protocol': GraphQLProtocol.graphqlWs,
        },
      );
      final WebSocketLink webSocketLink = WebSocketLink(
        subscriptionEndpoint,
        config: SocketClientConfig(
          autoReconnect: true,
          serializer: AppSyncRequest(uuid: 'uuid', token: currentToken),
          inactivityTimeout: const Duration(seconds: 60),
          headers: kIsWeb
              ? null
              : {
                  'Authorization': "Bearer $currentToken",
                  'Sec-WebSocket-Protocol': GraphQLProtocol.graphqlWs,
                },
          initialPayload: {
            'Authorization': currentToken,
          },
        ),
        subProtocol: GraphQLProtocol.graphqlWs,
      );
      final AuthLink authLink =
          AuthLink(getToken: () => 'Bearer $currentToken');
      final Link linkSplitted = authLink.split(
        (request) => request.isSubscription,
        webSocketLink,
        httpLink,
      );
      final graphQLCache = GraphQLCache();
      final client = GraphQLClient(
        link: linkSplitted,
        cache: graphQLCache,
        defaultPolicies: DefaultPolicies(
          watchQuery: Policies(fetch: FetchPolicy.noCache),
          query: Policies(fetch: FetchPolicy.noCache),
          mutate: Policies(fetch: FetchPolicy.noCache),
          subscribe: Policies(fetch: FetchPolicy.noCache),
        ),
        alwaysRebroadcast: true,
      );
      const checkOutSubscription = r'''
subscription MySubscription {
  onUpdateCheckout(userId: $userId) {
    createdAt
    checkoutId
    maxAllowedAmount
    maxAvailableAmount
    message
    state
    trancheId
  }
}
''';
      final options = SubscriptionOptions(
        document: gql(checkOutSubscription),
        variables: {
          "userId": "userId",
        },
      );
      final result = client.subscribe(options);
      Map<String, dynamic> data = {};
      result.listen(
        (event) {
          // not triggered
          data = event.data ?? {};
          if (data.isNotEmpty) {
            // not triggered
          }
        },
        cancelOnError: true,
      );
      return Future.value(data);
    } on Exception {
      rethrow;
    }
  }logs
flutter: Request : {
  "userId": "244648"
}
flutter: Listen Subscription: Active
flutter: Listen Subscription Exception: OperationException(linkException: ResponseFormatException(originalException: FormatException: Unexpected character (at character 1)
Bad Request
^
, originalStackTrace: #0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1383:5)
#1      _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1250:9)
#2      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:915:22)
#3      _parseJson (dart:convert-patch/convert_patch.dart:35:10)
#4      JsonDecoder.convert (dart:convert/json.dart:610:36)
#5      JsonCodec.decode (dart:convert/json.dart:216:41)
#6      HttpLink._defaultHttpResponseDecoder (package:gql_http_link/src/link.dart:48:12)
#7      HttpLink._parseHttpResponse (package:gql_http_link/src/link.dart:117:53)
#8      HttpLink.request (package:gql_http_link/src/link.dart:78:28)
<asynchronous suspension>
), graphqlErrors: [])
flutter: Listen Subscription Data: {}
flutter: Listen Subscription DoneMetadata
Metadata
Assignees
Labels
⌛ reproduction neededIssue is subtle and requires a true accessible reproduction to debugIssue is subtle and requires a true accessible reproduction to debugPriority: Waiting to be assignedTo be inside the next release process, it need to be marked with some level of priorityTo be inside the next release process, it need to be marked with some level of priority