Wie kann ich von React-Native aus eine Verbindung zum signalR-Endpunkt herstellen?Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Wie kann ich von React-Native aus eine Verbindung zum signalR-Endpunkt herstellen?

Post by Anonymous »

Ich benötige Hilfe beim Verbinden meiner React-Native-App mit dem signalR-Endpunkt.
Mein Benachrichtigungsdienst läuft auf Docker auf meinem lokalen Computer mit freigelegtem Port 7295. Ich kann über den Postman-Websocket eine Verbindung herstellen, aber wenn ich versuche, von meinem Android-Emulator aus eine Verbindung herzustellen, erhalte ich folgende Fehlermeldung:
Image

Und hier sind die Protokolle vom Benachrichtigungsdienst:
Image

Und hier ist mein JS-Code aus der React-Native-Hook-App für Android:

Code: Select all

export const useSignalR = (id: string, isMerchant = false) => {
const [connection, setConnection] = useState(
null,
);

useEffect(() => {
const conn = new signalR.HubConnectionBuilder()
.withUrl('http://10.0.2.2:7295/orderNotificationHub', {
skipNegotiation: true,
transport: signalR.HttpTransportType.WebSockets,
})
.withAutomaticReconnect()
.configureLogging(signalR.LogLevel.Information)
.build();

conn
.start()
.then(() => {
console.log('connected to hub');

if (isMerchant) {
conn.invoke('RegisterMerchant', id).catch(console.error);
} else {
conn.invoke('RegisterUser', id).catch(console.error);
}

setConnection(conn); // only set when ready
})
.catch(err => console.error('connection failed: ', err));

return () => {
conn.stop();
};

}, [id, isMerchant]);

return connection;
};
Ich gebe auch den program.cs-Code vom Benachrichtigungsdienst weiter:

Code: Select all

builder.WebHost.ConfigureKestrel(options =>
{
options.ListenAnyIP(7295);
});
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddSignalR();
builder.Services.AddCors(options =>
{
options.AddPolicy("DevCors", policy =>
{
policy
.AllowAnyHeader()
.AllowAnyMethod()
.SetIsOriginAllowed(_ => true)
.AllowCredentials();
});
});
app.UseCors("DevCors");
app.UseWebSockets();
app.UseAuthorization();

app.MapControllers();

//map hubs
app.MapHub("/orderNotificationHub");
Irgendwelche Ideen, wie man das beheben kann?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post