如何使用asp .net core web api发送连续的数据流?
Posted
技术标签:
【中文标题】如何使用asp .net core web api发送连续的数据流?【英文标题】:How to send a continuous stream of data with asp .net core web api? 【发布时间】:2021-09-06 03:37:08 【问题描述】:我想向客户端发送连续的数据流。假设我有一个 web api 服务路由[Route(/bla/continuous/data)]
。客户端期望来自该api的http上的连续流数据,有没有办法做到这一点?例如,我在这条路线上尝试的这段代码[Route(/bla/continuous/data)]
System.Xml.Serialization.XmlSerializer serializeObj = new
System.Xml.Serialization.XmlSerializer(typeof(CachedResponse));
MemoryStream memoryStream = new MemoryStream();
serializeObj.Serialize(memoryStream, events);
var xmlDoc = Encoding.ASCII.GetString(memoryStream.ToArray());
XDocument xDoc = XDocument.Parse(xmlDoc);
xDoc.StripNamespace();
var xmlReader = xDoc.CreateReader();
xmlReader.MoveToContent();
var response = Regex.Replace(xmlReader.ReadInnerXml(), @"\s+", "");
现在最后响应类型是字符串类型,但我想那不是连续流,如果有意义的话,我希望能够连续发送该响应,不确定我是否解释正确!!
【问题讨论】:
试试 WebSockets 或 SignalR 【参考方案1】:你必须使用发布/订阅模式,你可以使用任何消息代理
【讨论】:
以上是关于如何使用asp .net core web api发送连续的数据流?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Asp.net Core Web Api 中默认使用 Newtonsoft.Json?
如何在 ASP.NET Core Web API 中使用 MassTransit 事件总线?
如何使用 Postman 使用 cookie 身份验证测试 ASP.NET Core Web API?
如何使用 Web Api Asp.Net Core 实现基于声明的授权?