问题描述
我正在使用 gRPC(BI 定向流)开发 .NET Core 聊天室。 客户端,目前,是一个控制台应用程序(.net core 3.1,服务器是 5.0)。 客户端 - 服务器通信工作正常,突然间,我开始抛出 RpcExceptions。 问题是,抛出的异常有 StatusCode=OK 并且没有详细信息。 这是一个代码示例(简化)
服务器流 RPC
if (!await requestStream.MoveNext())
return;
//Open Connection - set user stream to server's output
client.Stream = responseStream;
while(await requestStream.MoveNext())
{
var chatMessage = requestStream.Current;
chatMessage.Msg = $"{requestStream.Current.ClientName}: {requestStream.Current.Msg}";
foreach (var user in loggedClients)
{
user.Stream.WriteAsync(chatMessage);
}
}
客户端代码
using (var streaming = client.RPC_broadcastChatMessage(MetaData))
{
//Read stream and display on console
var readTask = Task.Run(async () =>
{
while (await streaming.ResponseStream.MoveNext())
{
Console.WriteLine($"{streaming.ResponseStream.Current.Msg}");
}
});
//Send first message (empty string) - for a welcome message
Console.WriteLine("Sending empty msg");
await streaming.RequestStream.WriteAsync(emptyMsg);
//Wait for messages from user and send to server
Console.WriteLine("Type message and press Enter to send...");
string line = Console.ReadLine();
while (!string.Equals(line,"exit",StringComparison.OrdinalIgnoreCase))
{
var stream = streaming.RequestStream;
var msg = new ChatMessage()
{
ClientId = clientId,ClientName = $"User{userNumber}",Msg = line,RoomId = roomId
};
await stream.WriteAsync(msg);
line = Console.ReadLine();
}
}
例外 Grpc.Core.RpcException: Status(StatusCode="OK",Detail="")
客户端和服务器都在本地运行。 我试过谷歌搜索异常,但还没有找到任何东西(不管怎样,与 statusCode=OK 无关)。 有人有任何线索吗?我将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)