Wie zu verwenden SignalR mit cross-domain
Ich versuche, mit SignalR mit cross-domain-aber ich erhalte eine Fehlermeldung beim Aufruf der Funktion start. Fehlermeldung ist "Uncaught TypeError: Cannot call method 'start' of undefined "
Bin ich mit dem code
Server-Seite:
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Map("/signalr", map =>
{
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration
{
EnableJSONP = true
};
map.RunSignalR(hubConfiguration);
});
}
}
}
Client-seitigen code.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="/Scripts/jquery-1.6.4.min.js"></script>
<script src="/Scripts/jquery.signalR-1.1.4.min.js"></script>
</head>
<body>
<div></div>
<script type="text/javascript">
var connection = $.connection.hub.url ='http://localhost:9370/signalr';
connection.hub.start()
.done(function () {
alert('Now connected, connection ID=' + connection.id);
});
</script>
</body>
</html>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es Probleme mit der Initialisierung und start des Signalr-Verbindung, auch deklarieren Sie eine proxy-Referenz der hub. Siehe unten Beispiel:
Andere Sache, ich bin mir nicht sicher, warum Sie unterschiedliche Versionen von
SignalR
in Ihrem server-Seite und client-Seite. Mir Sie hatteSignalR 2.x
auf Ihrem server-Seite undSignalR 1.1.4
auf Ihrer leistungsfähigen Seite.Werfen Sie einen Blick auf den folgenden link, es ist gut, ein Beispiel über SignalR mit cross-domain.
http://damienbod.wordpress.com/2013/11/01/signalr-messaging-with-console-server-and-client-web-client-wpf-client/
@Lin hat die Frage bereits beantwortet , aber ich möchte zu informieren, ein wichtiger Punkt im Bezug auf CROSS-DOMAIN-Verbindung.
Meistens, wenn Sie dieses Problem gegoogelt , wir verwendet, um zu finden, die alle Beispiele mit localhost für ex: http://localhost:9370
Als Sie die Bindung an localhost nur , so wird es nicht funktionieren, wenn Sie versuchen, den Zugriff von einer anderen Adresse wie http://dev-domain:9370/signalr/hubs aus der Ferne, erhalten Sie den HTTP-Fehler 400 ich.e die Anforderung für den Hostnamen ist ungültig.
Damit binden werden alle Adressen auf der Maschine ,die wir haben, um es so zu benutzen
http://*:8097
Wenn jemand gefunden Problem nach diesem , überprüfen Sie die firewall bitte 🙂