Skip to content

Commit aa3c6d4

Browse files
committed
Add option to set request timeout
1 parent 4aafac6 commit aa3c6d4

4 files changed

Lines changed: 16 additions & 4 deletions

File tree

android/src/main/java/com/reactnativegrpc/GrpcModule.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,12 @@ private ClientCall startGrpcCall(int callId, int clientId, String path, MethodDe
176176

177177
CallOptions callOptions = CallOptions.DEFAULT;
178178

179+
if (settings.hasKey("requestTimeout")) {
180+
int callTimeout = settings.getInt("requestTimeout");
181+
182+
callOptions = callOptions.withDeadlineAfter(callTimeout, TimeUnit.MILLISECONDS);
183+
}
184+
179185
if (settings.hasKey("compressionName")) {
180186
callOptions = callOptions.withCompression(settings.getString("compressionName"));
181187
}

example/ios/Podfile.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ PODS:
259259
- React-jsinspector (0.70.6)
260260
- React-logger (0.70.6):
261261
- glog
262-
- react-native-grpc (1.0.0-8):
262+
- react-native-grpc (1.0.0-9):
263263
- gRPC-Swift
264264
- React-Core
265265
- React-perflogger (0.70.6)
@@ -637,7 +637,7 @@ SPEC CHECKSUMS:
637637
React-jsiexecutor: b4a65947391c658450151275aa406f2b8263178f
638638
React-jsinspector: 60769e5a0a6d4b32294a2456077f59d0266f9a8b
639639
React-logger: 1623c216abaa88974afce404dc8f479406bbc3a0
640-
react-native-grpc: 8c905356969a7a4ba96e96c04331e6b8de1addee
640+
react-native-grpc: 268c75d05f16e874a814f7a820b3a3e9f1ef7311
641641
React-perflogger: 8c79399b0500a30ee8152d0f9f11beae7fc36595
642642
React-RCTActionSheet: 7316773acabb374642b926c19aef1c115df5c466
643643
React-RCTAnimation: 5341e288375451297057391227f691d9b2326c3d
@@ -668,4 +668,4 @@ SPEC CHECKSUMS:
668668

669669
PODFILE CHECKSUM: dade9e439d349a55615e971fb13a399b0ba1f887
670670

671-
COCOAPODS: 1.11.3
671+
COCOAPODS: 1.12.0

ios/RNGrpc.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,11 +311,16 @@ class RNGrpc: RCTEventEmitter {
311311

312312
private func getCallOptionsWithHeaders(id: Int, headers: HPACKHeaders) throws -> CallOptions {
313313
var encoding: ClientMessageEncoding = .disabled
314+
var timeLimit: TimeLimit = .none
314315

315316
guard let (options, _) = self.connections[id] else {
316317
throw GrpcError.missingConnection
317318
}
318319

320+
if let callTimeout = options["requestTimeout"] as? Int64 {
321+
timeLimit = .timeout(.seconds(callTimeout))
322+
}
323+
319324
if let enabled = options["compression"] as? NSNumber, enabled.boolValue {
320325
let compressionAlgorithm: [CompressionAlgorithm]
321326

@@ -343,7 +348,7 @@ class RNGrpc: RCTEventEmitter {
343348
)
344349
}
345350

346-
return CallOptions(customMetadata: headers, messageEncoding: encoding)
351+
return CallOptions(customMetadata: headers, timeLimit: timeLimit, messageEncoding: encoding)
347352
}
348353

349354
private func closeConnection(id: Int) throws {

src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export type GrpcClientSettings = {
1212
keepalive?: boolean;
1313
keepaliveInterval?: number;
1414
keepaliveTimeout?: number;
15+
requestTimeout?: number;
1516
};
1617

1718
export interface GrpcServerInputStream {

0 commit comments

Comments
 (0)