hasura_connect icon indicating copy to clipboard operation
hasura_connect copied to clipboard

await connect for subscription

Open barbalex opened this issue 4 years ago • 4 comments

solves https://github.com/Flutterando/hasura_connect/issues/90

When creating a subscription hasura_connect checks if a connection already exists. If not, it creates it before returning the snapshot. But it returns the snapshot without awaiting the connection to be established: https://github.com/Flutterando/hasura_connect/blob/master/lib/src/presenter/hasura_connect_base.dart#L204.

I forked this repo and the corrected version works for me. I must admit I have not understood all of the code under hasura_connect's hood though. So hopefully this is the right thing to do.

barbalex avatar Jun 16 '21 12:06 barbalex

any chance this is reviewed and merged? otherwise we keep getting Error: HasuraRequestError: an operation already exists with this id.... thanks guys!

zaqwery avatar Mar 18 '24 11:03 zaqwery

and the problem continues. Need to merge this commit

rhonner avatar Apr 14 '24 16:04 rhonner

this branch has conflicting

OrlandoEduardo101 avatar Jun 13 '24 16:06 OrlandoEduardo101

Since I created this pull request, the code has been changed from:

if (snapmap.keys.isNotEmpty && !_isConnected) {
  // ignore: unawaited_futures
  _connect();
} else if (_isConnected) {
  final input = querySubscription(snapshot.query);
  sendToWebSocketServer(input);
}
return snapshot;

to:

///If the snapmap keys is not empty and it's not connected, connects
///else if is connected, the input receives the query subscription and
///send it to web socker server
if (snapmap.keys.isNotEmpty && !_isConnected) {
  // ignore: unawaited_futures
  _connect();
  await Future.delayed(const Duration(milliseconds: 500));
} else if (_isConnected) {
  final input = querySubscription(snapshot.query);
  sendToWebSocketServer(input);
}

/// returns the snapshot
return snapshot;

I can't tell whether that solves the issue (maybe better). I am not using flutter any more. So maybe this pull request does not make sense any more?

barbalex avatar Jun 13 '24 17:06 barbalex