Asp.net 为什么Blazor页面会自动创建websocket连接?

Asp.net 为什么Blazor页面会自动创建websocket连接?,asp.net,asp.net-blazor,Asp.net,Asp.net Blazor,我在asp.net core 3.1中创建了一个Blazor项目,并添加了API支持,现在正在向其中添加WebSocket 我遵循了这个教程 尽管websocket中间件和everyting都能工作,但在我将其集成到Blazor项目中的那一刻,我就遇到了问题 Hello from 2nd Request Delegate - No WebSocket WebSocketServerConnectionManager-> AddSocket: WebSocket added with ID

我在asp.net core 3.1中创建了一个Blazor项目,并添加了API支持,现在正在向其中添加WebSocket

我遵循了这个教程

尽管websocket中间件和everyting都能工作,但在我将其集成到Blazor项目中的那一刻,我就遇到了问题

Hello from 2nd Request Delegate - No WebSocket
WebSocketServerConnectionManager-> AddSocket: WebSocket added with ID: 18a403b3-cbab-4523-b25d-00cddd4f05d5
Receive->Text
Message: {"protocol":"blazorpack","version":1}
Unhandled exception. Receive->Close on: 18a403b3-cbab-4523-b25d-00cddd4f05d5
Managed Connections: 0
Newtonsoft.Json.JsonReaderException: Additional text encountered after finished reading JSON content: . Path '', line 1, position 37.
   at Newtonsoft.Json.JsonTextReader.Read()
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value)
显然,只要blazor自己加载网页,就会有一个websocket连接到服务器(尽管我没有做任何事情)

套接字消息为==>
{“protocol”:“blazorpack”,“version”:1}

当然,代码没有处理这种格式,因此错误(可以修复)

但我很好奇这种自动插座连接是如何开始的。有人知道更多关于Blazor模板的神秘内置套接字消息吗?

使用WebSocket(通过SignalR)是Blazor在客户端和服务器部分之间传递信息的方式。它是整个平台架构的基础。它可以回退到http长轮询,但不建议这样做。看


我怀疑您是否需要一个特定的单独websocket或signalr实现(除非它连接到与Blazor应用程序不同的服务器/应用程序)。

Blazor就是这样在客户端和服务器部分之间传递信息的。它是整个平台架构的基础。它可以回退到http长轮询,但不建议这样做。我怀疑你是否需要一个特定的单独的websocket或Signal实现(除非它是连接到Blazor应用程序之外的其他服务器/应用程序)。“如果你不否决它,那就太好了”。。。人们会根据问题的质量来投票,而不是你是否被禁止。如果你继续发布质量低劣的问题,那么你应该再被禁止一次。这就是系统的工作原理。没有人会仅仅出于同情而容忍质量低劣,当每天都有数百个其他问题等待回答,而这些问题可能更容易回答时,情况就更糟了。事实上,这一点是合理的,所以从我的角度来看,你没有什么好担心的。@ADyson tnx,谢谢你的意见。是的,这是针对独立的套接字客户端的,我使用blazor只是为了避免JS。计划建立一个简单的网站,而不使用任何更深层次的功能。。。但这主要是一个webapi,而不是其他任何东西。。也可以将您的评论作为答案发布,这样我就可以投票了。。这就解决了我的主要问题。。