Signalr 带有角度和 .net 核心错误,代码为 1006
Posted
技术标签:
【中文标题】Signalr 带有角度和 .net 核心错误,代码为 1006【英文标题】:Signalr with angular and .net core error with code 1006 【发布时间】:2020-05-31 08:12:10 【问题描述】:在 IIS 上托管 Angular 应用程序时,我遇到信号器问题,它一直在控制台上显示以下错误:
[2020-05-31T08:09:00.838Z] Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 ().'.
请记住,一旦我使用 nodeJs 托管了 Angular 应用程序,它就可以正常工作,但我需要在 IIS 上托管 Angular 应用程序。
我正在使用“@microsoft/signalr”和 aspcore 3.1
我的代码示例角度:
constructor(private fb: FormBuilder, private router: Router)
//establish a new connection on the logging user group
this.signalRConnection = new signalR.HubConnectionBuilder()
.configureLogging(signalR.LogLevel.Information)
.withUrl(this.hubUrl)
.build();
this.signalRConnection.start().then(() =>
this.session.id = this.signalRConnection.connectionId;
this.signalRConnection.send("RegisterOnlineUser", this.session, 'title', 'url');
this.signalRConnection.send("GetOnlineUsers");
);
aspcore:
public async void registerOnlineUser(SessionInfo session)
await Groups.AddToGroupAsync(Context.ConnectionId, session.group);
await Clients.Group(Users).SendAsync("RegisterOnlineUser", session);
【问题讨论】:
你在前端使用什么样的库作为信号器?你的后端是nodejs还是其他? 你需要分享角度和核心部分代码来理解问题 我使用前端的“@microsoft/signalr”作为角度,我的后端是 asp.net core 3.1 @aspnet/signalr 适用于核心 api 。在我的应用程序中,我将此库用于角度 【参考方案1】:您必须在 IIS 设置中启用 websocket。 https://docs.microsoft.com/en-us/iis/configuration/system.webserver/websocket
【讨论】:
以上是关于Signalr 带有角度和 .net 核心错误,代码为 1006的主要内容,如果未能解决你的问题,请参考以下文章
ValidateAntiForgeryToken 400 错误使用角度 13 和 ASP.NET 核心 5
SignalR 正在重新连接 .net 3.1 核心中的每个视图秒
带有 SignalR 集线器的 ASP.NET Core 中的范围服务
在角度应用程序中使用 SignalR Core 时出现 CORS 错误