grpc / grpc/grpc-web

Android server stream doesn't work as intended

Open
#966 3 comments 4 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
9.3k
Forks
802
Avg merge
1d 7h
Merged PRs (30d)
5

Description

Hi all
we've got an issue only on android with grpc-server stream. The stream is waiting for all the data to be received before doing anything.
On ios the same code is working fine
But strangely, when we use react-native-debugger then android is working as intended.
Any idea what could be wrong ?

here is our app code

```javascript
const App: () => React$Node = () => {
const [textInfo, setTextInfo] = useState("")
const callStreamFrom = () => {

const request = new HelloWorldRequest();
request.setMessage('youpi');
console.log("clik clik")

var stream = client.helloStreamFrom(request, {});

stream.on('data', function(response) {
console.log(response.getMessage());
setTextInfo(response.getMessage());
});
}

return (

{textInfo}
callStreamFrom()}
title='Click me stream'
color='blue'
accessibilityLabel='Click this button to increase count'
/>

)
}
```
our proto
```proto
service HelloService {
rpc HelloStreamFrom(HelloWorldRequest) returns (stream HelloWorldResponse) {}
}

message HelloWorldRequest {
string message = 1;
}

message HelloWorldResponse {
string message = 1;
}
```

our server
```go
type GRPCServer struct {
}

var _ = (pb.HelloServiceServer)(&GRPCServer{})

func (g *GRPCServer) HelloStreamFrom(req *pb.HelloWorldRequest, srv pb.HelloService_HelloStreamFromServer) error {
ctx := srv.Context()
str := ""
for i := 0; i < 20; i++ {
select {
case <-ctx.Done():
return ctx.Err()
default:
}
time.Sleep(time.Second)
// receive data from stream
str += req.Message
srv.SendMsg(&pb.HelloWorldResponse{Message: "Stream from lol:" + str})
}
return nil
}

```

our package.json dependencies
```json
"dependencies": {
"react": "16.13.1",
"react-native": "0.63.3",
"@grpc/grpc-js": "1.1.7",
"google-protobuf": "3.13.0",
"grpc": "1.24.3",
"grpc-web": "1.2.1"
},
```

ios console output (look at the timestamps):
```
[Thu Oct 01 2020 09:20:05.917] LOG clik clik
[Thu Oct 01 2020 09:20:07.265] LOG Stream from lol:youpi
[Thu Oct 01 2020 09:20:08.260] LOG Stream from lol:youpiyoupi
[Thu Oct 01 2020 09:20:09.261] LOG Stream from lol:youpiyoupiyoupi
[Thu Oct 01 2020 09:20:10.262] LOG Stream from lol:youpiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:11.262] LOG Stream from lol:youpiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:12.263] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:13.263] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:14.264] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:15.261] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:16.264] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:17.264] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:18.264] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:19.267] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:20.436] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:21.265] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:22.266] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:23.266] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:24.265] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:25.264] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:20:26.268] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
```

android console output (look at the timestamps):
```
[Thu Oct 01 2020 09:01:28.679] LOG clik clik
[Thu Oct 01 2020 09:01:49.244] LOG Stream from lol:youpi
[Thu Oct 01 2020 09:01:49.268] LOG Stream from lol:youpiyoupi
[Thu Oct 01 2020 09:01:49.276] LOG Stream from lol:youpiyoupiyoupi
[Thu Oct 01 2020 09:01:49.285] LOG Stream from lol:youpiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.293] LOG Stream from lol:youpiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.300] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.339] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.347] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.355] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.362] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.370] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.378] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.392] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.401] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.410] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.418] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.425] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.457] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.465] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
[Thu Oct 01 2020 09:01:49.473] LOG Stream from lol:youpiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupiyoupi
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.