我有一个 Ionic 应用程序,我希望它连接到我的套接字。这在 SignalR 预览中工作得很好,而且本质上仍然如此,但由于某种原因需要 2 分钟才能连接......连接时我也遇到一些错误:这是我的 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,因此我使用了代理。我不知道这是否与它有关,但我只是想指出它以防万一。
1 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
出色地...
为我感到羞耻。
代理导致了问题。
我在 Visual Studio 中为我自己的 IP 添加了绑定,现在可以使用了。
要做到这一点打开\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,否则您的应用程序将无法启动。
- 1 回答
- 0 关注
- 237 浏览
添加回答
举报
0/150
提交
取消