SignalR: Fehler bei der Verhandlungsanforderung: undefiniert
Ich habe versucht, einen JavaScript-Signal-R-Client gegen einen selbst gehosteten Owin-Server zum Laufen zu bringen. Und stoße auf dieses Problem. Ich habe beide Proxys und keine Proxy-Methoden mit dem gleichen Ergebnis und Fehler "SignalR: Fehler während der Verhandlungsanfrage: undefiniert" ausprobiert.
Ich konnte das domänenübergreifende Beispiel ohne Probleme ausführen und kann nicht herausfinden, was ich falsch mache. Hat jemand eine Idee?
Die Browserkonsole ruft Protokolle ab, um einen Verhandlungsversuch zu starten, und ich erhalte den Fehler.
Server / Hub
namespace SignalROwinHost
{
class Program
{
static void Main(string[] args)
{
string url = "http://localhost:9000/";
using (WebApplication.Start<Startup>(url))
{
Console.WriteLine("Server running on {0}", url);
Console.ReadLine();
}
}
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapHubs();
}
}
public class ChatHub : Hub
{
public void Send(string message)
{
Clients.All.send(message);
}
}
}
}
Javascript (kein Proxy):
<script type="text/javascript">
$(function () {
var connection = $.hubConnection('http://localhost:9000');
var chat = connection.createHubProxy('chatHub');
chat.on('send', function (message) {
$('#chat').html($('#chat').html() + "\r\n" + message);
});
connection.logging = true;
connection.start().done(function () {
alert("Connection Complete");
$('#sendBtn').click(function () {
chat.invoke('send', $('#message').val());
});
}).fail(function (param) { alert(param); });
});
</script>
Javascript (Proxy):
<script src="http://localhost:9000/signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
var chat = $.connection.chatHub;
chat.client.send = function (message) {
alert(message);
};
$.connection.hub.logging = true;
$.connection.hub.url = "http://localhost:9000/signalr";
$.connection.hub.start()
.done(function (param) {
chat.server.send("Connected");
})
.fail(function (param) {
alert("Could not Connect: " + param);
});
});
</script>