Я использую виджет подписки и как я могу убедиться, что соединение с сервером установлено, и я могу вызвать его в виджете подписки. Я использую этот пакет https://pub.dev/packages/graphql_flutter
вот мое подключение клиента сокета
link = HttpLink(
uri:
'http://staginggraphql*********************,
headers: <String, String>{
'x-token': centralstate.GraphQLToken,
},
);
socketLink = WebSocketLink(
url: 'ws://staginggraphql*********************,
config: SocketClientConfig(
initPayload: {"authToken": "${centralstate.GraphQLToken}"},
autoReconnect: true,
inactivityTimeout: Duration(seconds: 30),
),
);
link = link.concat(socketLink);
client = ValueNotifier(
GraphQLClient(cache: InMemoryCache(), link: link),
);
Виджет подписки:
GraphQLProvider(
client: client,
child: Subscription(
operationName,
"""subscription $operationName{
leagueGameStatusUpdate(leagueAppID:"${centralstate.leagueAppID}"){
appID
error
status
}
}""",
builder: ({
bool loading,
dynamic payload,
dynamic error,
}) {
//how to make sure that WebSocket is connected and then call playduel function
game.playDuel().then((value) {
if (value != 'complete') {
print('error screen');
}
});
return PlayingAnimation();
},
)),
загрузка и загрузка всегда возвращает true и null Мне нужно дать некоторую задержку перед вызовом game.playDuel (), иначе это не сработает.
Спасибо, любая помощь приветствуется.