Comments (2)
Hi @RobinKamps ,
there is no built-in feature in ngx-grpc, but it is kinda built-in feature of the rxjs.
This is an example of what I normally use (not globally, just in place):
this.client.listen(new MyRequest())
.pipe(
// infinitely retry in 3 seconds in case of error
retryWhen(errors => errors.pipe(
delay(3000),
)),
)
.subscribe(() => /* here is your logic */);
If you need this to be enabled globally, just transform this code into an interceptor. Note, that interceptor's observables do not throw errors, so you might need some step before which looks for particular status codes and transforms them into errors. This is actually way more flexible approach because you can also limit reconnection to the specific status codes, e.g. to reconnect only on networking issues.
Please keep in mind that having global interceptor is good for most of the cases, but it will also make it problematic to switch it off for the particular requests. It might be more comfortable in the beginning but some day you might regret it.
from ngx-grpc.
Thank you very much.
i already tried the retryWhen operator, but could not get it to work to reconnect on completed for streams.
Your hint about transforming into errors (e.g. throwError), so that retryWith can pick it up, was helpful.
Now its working as expected.
from ngx-grpc.
Related Issues (20)
- How to decode grpc-web-text HOT 2
- Angular 16 issue HOT 1
- ngx-grpc client service throwing error HOT 1
- Running the plugin as a standalone executable throws Error: Cannot find module 'tslib' HOT 7
- [Question] GrpcHandler undefined HOT 1
- Question regarding google.api.http HOT 1
- Client Side Load Balancing
- Question: How can I use two GRPC service instances? HOT 5
- Any type usage help HOT 2
- Define the host in the constructor of my service instead of in the AppModule HOT 2
- Bi-directional streaming with @ngx-grpc/grpc-web-client HOT 1
- Package name with uppercase letters is not properly generated HOT 7
- update @improbable-eng/grpc-web dependency HOT 3
- Combine web worker and ImprobableEngGrpcWebClientModule? HOT 2
- How to reduce timeout or deadline? HOT 1
- do I need to handle connection close in server side HOT 4
- No licence specified at npm for @ngx-grpc/grpc-web-client HOT 1
- int64 is a string HOT 8
- Why are all properties generated in interfaces optional? HOT 3
- When I write in the settings file pbconf generate false. HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ngx-grpc.