gpt4 book ai didi

c# - Azure 中继混合连接 - 如何发送同步请求/响应

转载 作者:行者123 更新时间:2023-12-03 04:19:58 31 4
gpt4 key购买 nike

我正在使用混合连接从监听器请求数据。如果我可以对连接进行写入和读取,我如何知道从连接读取的响应与我给出的请求相匹配?例如:

private HybridConnectionClient _client = new HybridConnectionClient(***);

public override async Task<RelayResponse> SendAsync(RelayRequest request)
{
var stream = await _client.CreateConnectionAsync();
var writer = new StreamWriter(stream) { AutoFlush = true };
var reader = new StreamReader(stream);

var reqestSerialized = JsonConvert.SerializeObject(request);

await writer.WriteLineAsync(reqestSerialized);

string responseSerialized = await reader.ReadLineAsync();
var response = JsonConvert.DeserializeObject<RelayResponse>(responseSerialized);

return response;
}

如果此连接上的监听器同时读取和响应许多请求,是否可以知道我们在客户端执行的下一个获取响应的 Readline() 是与要求?或者这是必须管理的事情?

最佳答案

进一步了解 azure 中继混合连接,我现在明白了。

框架中实际上没有任何同步请求/响应的概念,但是如果您为每个请求使用一个新连接,并在监听器中的同一连接上响应,您可以确定该响应是针对您发送的请求。

为每个请求生成一个新连接,然后确保将响应写入该连接。因此,查看 Microsoft 的监听器示例代码,每当 listener.AcceptConnectionAsync() 触发时,都会在 relayConnection 上执行所有消息响应,然后返回等待 await Listener.AcceptConnectionAsync ();

while (true)
{
var relayConnection = await listener.AcceptConnectionAsync();
if (relayConnection == null)
{
break;
}

ProcessMessagesOnConnection(relayConnection, cts);
}

关于c# - Azure 中继混合连接 - 如何发送同步请求/响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49979746/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com