gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 08:56:21 24 4
gpt4 key购买 nike

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

我遵循了本教程。

https://dotnetplaybook.com/which-is-best-websockets-or-signalr/

虽然 websocket 中间件和一切正常,但当我将它集成到 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 模板的神秘内置套接字消息吗?

最佳答案

Blazor 使用 Websockets(通过 SignalR)在客户端部分和服务器部分之间传递信息。它是平台整个架构的基础。它可以回退到 http 长轮询,但不推荐这样做。参见 https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/server?view=aspnetcore-3.1#signalr-configuration .

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

关于asp.net - 为什么 Blazor 页面会自动创建 websocket 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63812026/

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