基于MAUI+SignalR的聊天应用在Android模拟器中Hub连接失败求助
MAUI + SignalR Android模拟器连接失败排查要点
Android明文HTTP访问限制
Android 9及以上系统默认阻止明文HTTP请求,需在AndroidManifest.xml中添加配置允许明文访问:<application android:usesCleartextTraffic="true">Hub URL配置完整性
确认SignalR Hub的完整地址是否正确,需包含API项目的端口和Hub路由,例如:var hubUrl = "http://10.0.2.2:5000/chatHub"; // 替换为你的API端口和Hub路由CORS策略配置遗漏
API项目需配置CORS允许Android模拟器的请求来源,在Program.cs中确保CORS规则包含http://10.0.2.2并允许凭证:builder.Services.AddCors(options => { options.AddPolicy("MauiCorsPolicy", policy => { policy.WithOrigins("http://10.0.2.2") .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); }); }); app.UseCors("MauiCorsPolicy");传输协议兼容性问题
尝试强制指定WebSocket传输协议,避免模拟器对其他协议支持不佳:var connection = new HubConnectionBuilder() .WithUrl(hubUrl, options => { options.Transports = HttpTransportType.WebSockets; }) .Build();API服务运行状态验证
确认主机上的API项目正常运行,且端口未被防火墙拦截,直接在主机浏览器访问http://localhost:<端口>/chatHub,验证Hub是否能正常响应。
内容的提问来源于stack exchange,提问作者Senthilkumar
相关产品推荐
相关产品推荐

