G-RPC React Entegrasyonu Hakkında
-
Merhaba mürit ve mürideler.
Flutter mobil uygulamasında düzgün çalışan g-rpc entegrasyonunu react projesine de entegre etmeye başladım. Fakat 2-3 gündür uğraş vermeme rağmen bir türlü react projesinden request oluşturamadım.
import * as grpcWeb from 'grpc-web'; import {SamplePublicClient} from './proto/SampleServiceClientPb'; import {SampleRequest, SampleResponse} from './proto/sample_pb'; const URL = "https://my-test-app.xxxx:5000" const echoService = new SamplePublicClient(URL, null, null); const request = new SampleRequest(); request.setId('1'); const call = echoService.getSample(request, {'custom-header-1': 'value1'}, (err: grpcWeb.RpcError, response: SampleResponse) => { console.log(response); }); call.on('status', (status: grpcWeb.Status) => { console.log(status) });
React tarafındaki kodum bu şekilde ve aldığım hata ise;
{
"code": 2,
"details": "Http response at 400 or 500 level, http status code: 0",
"metadata": {}
}
bu şekilde. Anladığım kadarıyla Flutter tarafı direkt olarak http2 kullanırken web tarafında http1.2 den http2 ye convert işlemi yapan bir proxy server'a ihtiyaç duyuyor. Burada da Envoy Proxy gibi bir proxy kullanılıyor. Ama anladığım gibi mi eksik bir şey mi yapıyorum anlamadım. Bu konuda bilgisi olan var mı acaba?
Edit;
MhmdAlmz tarafından 11/May/23 12:13 tarihinde düzenlenmiştir
Aynı istek Postman de de çalışıyor. proto verileri vs doğru tekrar tekrar kontrol ettim bir çok kez. -
Araya proxy soktugunda hala verimli oluyor mu rpc??
-
Hocam proje sadece mobildi. Proxysiz çalıştık biz. Şimdi projenin web kısmını da istiyorlar. Sanırım web de (Browser) proxy siz yemiyor anladığım kadarıyla. Önüne proxy server eklemek gerekiyor http1 den 2 ye geçişi sağlayan. Performansa da bakmadım açıkcası.
EDİT; Dökümanda gözümden kaçan bir ifade var
https://github.com/grpc/grpc-web -> gRPC-web clients connect to gRPC services via a special proxy; by default, gRPC-web uses Envoy.
Sanırım abiler proxy eklemeniz lazım default olarak da envoy destekliyoruz diyorlar. Envoy proxy entegre edelim bakalım :/
MhmdAlmz tarafından 11/May/23 12:11 tarihinde düzenlenmiştir -
MhmdAlmz bunu yazdı
Hocam proje sadece mobildi. Proxysiz çalıştık biz. Şimdi projenin web kısmını da istiyorlar. Sanırım web de (Browser) proxy siz yemiyor anladığım kadarıyla. Önüne proxy server eklemek gerekiyor http1 den 2 ye geçişi sağlayan. Performansa da bakmadım açıkcası.
EDİT; Dökümanda gözümden kaçan bir ifade var
https://github.com/grpc/grpc-web -> gRPC-web clients connect to gRPC services via a special proxy; by default, gRPC-web uses Envoy.
Sanırım abiler proxy eklemeniz lazım default olarak da envoy destekliyoruz diyorlar. Envoy proxy entegre edelim bakalım :/
Envoy docker container'ı kaldırmadın mi zaten?
"Burada da Envoy Proxy gibi bir proxy kullanılıyor." deyince ben proxye rağmen sorun çıkıyor diye düşündüm...
-
end bunu yazdıMhmdAlmz bunu yazdı
Hocam proje sadece mobildi. Proxysiz çalıştık biz. Şimdi projenin web kısmını da istiyorlar. Sanırım web de (Browser) proxy siz yemiyor anladığım kadarıyla. Önüne proxy server eklemek gerekiyor http1 den 2 ye geçişi sağlayan. Performansa da bakmadım açıkcası.
EDİT; Dökümanda gözümden kaçan bir ifade var
https://github.com/grpc/grpc-web -> gRPC-web clients connect to gRPC services via a special proxy; by default, gRPC-web uses Envoy.
Sanırım abiler proxy eklemeniz lazım default olarak da envoy destekliyoruz diyorlar. Envoy proxy entegre edelim bakalım :/
Envoy docker container'ı kaldırmadın mi zaten?
"Burada da Envoy Proxy gibi bir proxy kullanılıyor." deyince ben proxye rağmen sorun çıkıyor diye düşündüm...
Yok hocam bizde proxy yoktu mobil olduğu için. Şimdi browser ile etkileşime geçtiği için proxy lazım şimdi onunla çalışıp bakacağım. Sanırım problemim Proxy. Envoyu çalıştırdıktan sonra problem olursa yine buralara gelirim. Problemi çözersem de yeşillendiririm konuyu.
-
MhmdAlmz bunu yazdıend bunu yazdıMhmdAlmz bunu yazdı
Hocam proje sadece mobildi. Proxysiz çalıştık biz. Şimdi projenin web kısmını da istiyorlar. Sanırım web de (Browser) proxy siz yemiyor anladığım kadarıyla. Önüne proxy server eklemek gerekiyor http1 den 2 ye geçişi sağlayan. Performansa da bakmadım açıkcası.
EDİT; Dökümanda gözümden kaçan bir ifade var
https://github.com/grpc/grpc-web -> gRPC-web clients connect to gRPC services via a special proxy; by default, gRPC-web uses Envoy.
Sanırım abiler proxy eklemeniz lazım default olarak da envoy destekliyoruz diyorlar. Envoy proxy entegre edelim bakalım :/
Envoy docker container'ı kaldırmadın mi zaten?
"Burada da Envoy Proxy gibi bir proxy kullanılıyor." deyince ben proxye rağmen sorun çıkıyor diye düşündüm...
Yok hocam bizde proxy yoktu mobil olduğu için. Şimdi browser ile etkileşime geçtiği için proxy lazım şimdi onunla çalışıp bakacağım. Sanırım problemim Proxy. Envoyu çalıştırdıktan sonra problem olursa yine buralara gelirim. Problemi çözersem de yeşillendiririm konuyu.
Envoy sorununu çözecektir hocam. Http 2 birçok browser tarafından henüz desteklenmiyor. Chrome son sürümlerinde destekliyor fakat yalnızca tls (https) üzerinden yapılan isteklerde geçerli bu.
chrome://flags/#enable-spdy4
Buradan etkinleştirmek gerekiyor sanırım.