【发布时间】:2020-09-07 22:35:03
【问题描述】:
我正在尝试使用我的智能手机(不是模拟器)连接到带有 SignalR 后端的 Aspnet Core。 我将 Cors 添加到 Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy(MyAllowSpecificOrigins,
builder => builder.SetIsOriginAllowed((host) => true)
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
services.AddSignalR();
}
readonly string MyAllowSpecificOrigins = "AllowOrigins";
...
app.UseCors(MyAllowSpecificOrigins);
我尝试连接 Angular 前端,它运行良好,我想对我的 Flutter 应用程序做同样的事情。 以下是部分代码:
const url = 'http://192.168.1.87:44327/signalrtc';
class _MyHomePageState extends State<MyHomePage> {
final hubConnection = HubConnectionBuilder().withUrl("$url").build();
@override
void initState() {
super.initState();
hubConnection.onclose((_) {
print("Connessione persa");
});
hubConnection.on("ReceiveMessage", onReceiveMessage);
startConnection();
}
void startConnection() async {
print('start');
await hubConnection.start();
}
我只使用Flutter SignalR package 并复制了本地计算机 IPv4 以连接到我的后端,因为正如我已经说过的,我没有使用模拟器,所以我无法插入 10.0.2.2,但如果我尝试运行应用程序它会给我那个错误。 我的电脑和智能手机都连接到同一个网络。
有什么想法吗?
【问题讨论】:
-
我不认为这是一个 CORS 问题。让我们看看是否有人可以回答这个问题。 :)
标签: flutter asp.net-core signalr