I have a multi-platform app that uses gRPC for front-back end communication.
Long story long: App usage scenario
backend transport various clients
[ gRPC(Server) ] -- gRPC -- [ flutter app + bloc + gRPC ]
[ gRPC + Postgres backend ]
[ gRPC-web(HttpServer?) ] -- gRPCw -- [ flutter web + bloc + gRPC-web ]
All connections happen on the same port.
- application works fine, uses defined services and interacts with database
- I do get http connection data on backend separately, so no issues on transfer part
The question is: How to consume that grpc-web connection on server side? I got to the point of
final webServer = await HttpServer.bind(
'0.0.0.0',
rpcPort,
shared: true,
);
print(' gRPC-web port ${webServer.port}');
await for (HttpRequest request in webServer) {
print(request);
}
it gets connection(Instance of '_HttpRequest'
), but how do I "feed" it to services
?
update 1: gRPC server code, I'm looking for similar with gRPC-web
final server = Server.create(
services: [
SiteMethodsService(databaseCore),
CategoryMethodsService(databaseCore)
],
interceptors: [],
codecRegistry: CodecRegistry(codecs: const [GzipCodec(), IdentityCodec()]),
);