Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用future方法,但Dart grpc客户端在调用future方法后不提供未知服务_Dart_Grpc_Dart Pub - Fatal编程技术网

如何使用future方法,但Dart grpc客户端在调用future方法后不提供未知服务

如何使用future方法,但Dart grpc客户端在调用future方法后不提供未知服务,dart,grpc,dart-pub,Dart,Grpc,Dart Pub,我在客户端运行此服务时遇到问题 但当我在请求之前输入console.log时,一切正常 代码如下: import 'package:grpc/grpc.dart'; import 'package:rpc/src/generated/blog.pb.dart'; import 'package:rpc/src/generated/blog.pbgrpc.dart'; Future<void> main() async { final channel = ClientChann

我在客户端运行此服务时遇到问题 但当我在请求之前输入console.log时,一切正常

代码如下:

import 'package:grpc/grpc.dart';
import 'package:rpc/src/generated/blog.pb.dart';
import 'package:rpc/src/generated/blog.pbgrpc.dart';

Future<void> main() async  {
  final channel = ClientChannel(
    'localhost',
    port: 50051,
    options: const ChannelOptions(credentials: ChannelCredentials.insecure()),
  );

  var stub = BlogServiceClient(channel);
  // final name = args.isNotEmpty ? args[0] : 'world';

  try {
    var bg = Blog();
    bg.authorId  = "name";
    bg.title = "LOL";
    bg.content = "Content here";
    var data = CreateBlogRequest();
    data.blog = bg;
    print(data);
     await stub.createBlog(data);
//    print(gotIt.);
  } catch (er) {
    print('something error yeahh ===> $er');
  }

  await channel.shutdown();
}

我得到的是
gRPC错误(12,未知服务blog.BlogService)
我想我已经改变了端口和命令选项,但仍然不起作用 同样的结果

我期望的是,我使用该服务创建博客
createBlog

我在运行服务器

我真的很想知道到底怎么了, 我认为dart开发者不太多,因为我很难在互联网上找到这方面的信息,
所以我来这里询问,希望grpc Dart团队能在一些问题上帮助一些开发人员,我在grpc Dart上的GitHub问题上看到过,在grpc Dart上回答一些问题的团队不多

我在
.proto
文件中给出了错误的
包名

这与
服务BlogService{}

在我更改了tp
package博客后,我的包名被命名为
package something

它工作得很好

我在
.proto
文件中给出了错误的
包名

这与
服务BlogService{}

在我更改了tp
package博客后,我的包名被命名为
package something
它工作得很好

syntax = "proto3";

package blog;
//option go_package="blogpb";

message Blog {
    string id = 1;
    string author_id = 2;
    string title = 3;
    string content = 4;
}

message CreateBlogRequest {
    Blog blog = 1;
}

message CreateBlogResponse {
    Blog blog = 1;
}

message ReadBlogRequest {
    string blog_id = 1;
}

message ReadBlogResponse {
    Blog blog = 1;
}

message UpdateBlogRequest {
    Blog blog = 1;
}

message UpdateBlogResponse {
    Blog blog = 1;
}

service BlogService {
    rpc CreateBlog (CreateBlogRequest) returns (CreateBlogResponse);
    rpc ReadBlog (ReadBlogRequest) returns (ReadBlogResponse);
    rpc UpdateBlog (UpdateBlogRequest) returns (UpdateBlogResponse);
}