我尝试在gRPC中进行BlackJack游戏练习,但我不明白这种流传输。
任务(服务器):
公共异步任务交易(Amount dealAmount,IServerStreamWriter< Card> responseStream,…
这看起来像是代码中与gRPC无关的问题。
从错误消息中可以明显看出它发生在服务器端处理程序中。我们来看看那里。
第一行就是 int.Parse(dealAmount.ToString()); ,“dealAmount”是一个协议缓冲消息,而ToString()给出了它的JSON表示(例如 { "Value": 123 } 或者)。这显然没有int.Parse可以接受的格式(因此异常“System.FormatException:输入字符串格式不正确。”)。
int.Parse(dealAmount.ToString());
{ "Value": 123 }
将protobuf消息转换为字符串,然后尝试解析没有任何意义 - 生成的“Amount”类已经允许您使用正确的类型访问所需的所有字段。