grpc多语言通信之GO和DART

都是一个吗生的,找下例子

上一篇文章说到go实现的grpc方法已经实现了一个grpc的server端,

注意:

这两个项目的.proto文件应当是完全一致的,只是方法用各自的语言实现罢了

报错了:

Caught error: gRPC Error (code: 12, codeName: UNIMPLEMENTED, message: grpc: Decompressor is not installed for grpc-encoding "gzip", details: [], rawResponse: null, trailers: {})

dart客户端使用了gzip让我们去掉相对应的代码,现在代码如

Dart 复制代码
// 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

相关推荐
IAUTOMOBILE1 分钟前
Qt 入门级开发实践:浅析基于 QTtest 项目的 C++ GUI 编程基础
开发语言·c++·qt
凸头3 分钟前
从聊天机器人到业务执行者:Agentic Orchestration 如何重构 Java 后端体系
java·开发语言·重构
希望永不加班4 分钟前
SpringBoot 跨域问题(CORS)彻底解决方案
java·spring boot·后端·spring
zhuhezhang6 分钟前
一个用golang开发的文本对比工具
开发语言·后端·golang·wails
王杨游戏养站系统9 分钟前
3分钟搭建1个游戏下载站网站教程!SEO站长养站系统!
开发语言·前端·游戏·游戏下载站养站系统·游戏养站系统
临溟夜空的繁星14 分钟前
C++ STL—— stack 和 queue
开发语言·c++
小年糕是糕手15 分钟前
【35天从0开始备战蓝桥杯 -- Day7】
开发语言·jvm·数据库·c++·蓝桥杯
小江的记录本15 分钟前
【端口号】计算机领域常见端口号汇总(完整版)
java·前端·windows·spring boot·后端·sql·spring
网络点点滴18 分钟前
customRef的强大之处
开发语言·前端·javascript
柒.梧.18 分钟前
深入理解AQS:Java并发编程的核心基石
java·开发语言