電子商務(wù)b2c網(wǎng)站建設(shè)選擇寧波seo優(yōu)化公司
都是一個(gè)嗎生的,找下例子
上一篇文章說到go實(shí)現(xiàn)的grpc方法已經(jīng)實(shí)現(xiàn)了一個(gè)grpc的server端,
注意:
這兩個(gè)項(xiàng)目的.proto文件應(yīng)當(dāng)是完全一致的,只是方法用各自的語(yǔ)言實(shí)現(xiàn)罷了
報(bào)錯(cuò)了:
Caught error: gRPC Error (code: 12, codeName: UNIMPLEMENTED, message: grpc: Decompressor is not installed for grpc-encoding "gzip", details: [], rawResponse: null, trailers: {})
dart客戶端使用了gzip讓我們?nèi)サ粝鄬?duì)應(yīng)的代碼,現(xiàn)在代碼如
// Copyright (c) 2018, the gRPC project authors. Please see the AUTHORS file
// for details. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License./// Dart implementation of the gRPC helloworld.Greeter client.
import 'package:grpc/grpc.dart';
import 'package:helloworld/src/generated/helloworld.pbgrpc.dart';Future<void> main(List<String> args) async {final channel = ClientChannel('localhost',port: 50051,options: ChannelOptions(credentials: ChannelCredentials.insecure(),// codecRegistry:// CodecRegistry(codecs: const [GzipCodec(), IdentityCodec()]),),);final stub = GreeterClient(channel);final name = args.isNotEmpty ? args[0] : 'world';try {final response = await stub.sayHello(HelloRequest()..name = name,// options: CallOptions(compression: const GzipCodec()),);print('Greeter client received: ${response.message}');} catch (e) {print('Caught error: $e');}await channel.shutdown();
}
?獲取到了消息:
?dart bin/client.dart
Greeter client received: Hello world