gpt4 book ai didi

c# - .NET Core 2.1/Angular - SignalR 只需 2 分钟即可连接到集线器

转载 作者:太空狗 更新时间:2023-10-29 18:18:40 27 4
gpt4 key购买 nike

我有一个 Ionic 应用程序,我希望它连接到我的套接字。这在 SignalR 预览中工作得很好,它基本上仍然有效,但由于某种原因需要 2 分钟才能连接......

enter image description here

连接时我也遇到一些错误:

enter image description here

这是我的 javascript 代码:

ngOnInit() {

const connection = new signalR.HubConnectionBuilder()
.withUrl("http://192.168.178.11:8040/socket?sessionId=3dc1dc11")
.build();

connection.on("ReceiveMessage", message => {
console.log(message);

this.zone.run(() => {
if(this.locked == true) {
this.locked = false
} else {
this.locked = true;
}
});

console.log(this.locked);
});

connection.start().catch(err => console.error);

}

这是我的中心:

public class DeviceHub : Hub
{
public override Task OnConnectedAsync()
{
var sessionId = Context.GetHttpContext().Request.Query["sessionId"];

return Groups.AddToGroupAsync(Context.ConnectionId, sessionId);
}
}

这是我在 Startup.cs 中的配置:

app.UseSignalR(routes =>
{
routes.MapHub<DeviceHub>("/socket");
});

现在我的问题是:我该如何解决这个问题?

编辑 1:

延迟发生在 OnConnectedAsync() 方法被调用之前。

编辑 2:

我认为我应该补充的另一件事是它直接向我的 API 发出请求:

ws://192.168.178.11:8040/socket?sessionId=3dc1dc11&id=Pt-JDlSPq2_WEIl-8cdPZA

这正是需要两分钟才能完成的请求。

编辑 3:

还有一件事我想指出的是我正在运行一个代理。我无法直接从手机连接到 API,所以我使用 proxy为了它。我不知道这是否与它有任何关系,但我只是想指出它以防万一。

最佳答案

嗯...

我真丢人。

代理导致了问题。

我已经在 Visual Studio 中为我自己的 IP 添加了绑定(bind),现在可以使用了。

为此打开 \APPLICATION_FOLDER\.vs\config\applicationhost.config .

然后寻找<bindings>并添加你自己的。

例子:

<bindings>
<binding protocol="http" bindingInformation="*:63251:localhost" />
<binding protocol="https" bindingInformation="*:44333:localhost" />
<binding protocol="http" bindingInformation="*:63251:192.168.178.11" />
<binding protocol="https" bindingInformation="*:44333:192.168.178.11" />
</bindings>

保存,大功告成。

注意:

从现在开始,您必须以管理员身份启动 Visual Studio,否则您的应用程序将无法启动。

关于c# - .NET Core 2.1/Angular - SignalR 只需 2 分钟即可连接到集线器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50639035/

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