Sto cercando di ottenere una connessione hub super semplice che funzioni in più domini ma senza fortuna. Ho letto dozzine di post e ho fatto tutto ciò che ho menzionato, ma non ho ancora avuto successo.Come posso ottenere una connessione hub SignalR per lavorare su più domini?
mio hub del server è qui
public class ChatHub : Hub
{
public void Send(string name, string message)
{
Clients.All.broadcastMessage(name, message);
}
}
miei MapHubs server di chiamata è qui
RouteTable.Routes.MapHubs(new HubConfiguration { EnableCrossDomain = true });
Qualsiasi mia javascript cliente è qui
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<script src="~/Scripts/jquery-2.0.1.min.js"></script>
<script src="~/Scripts/jquery.signalR-1.1.2.min.js"></script>
<script src="/signalr/hubs"></script>
</head>
<body>
<div class="container">
<input type="text" id="displayname" value="Test" />
<input type="text" id="message" value="I'm here" />
<input type="button" id="sendmessage" value="Send" />
</div>
<script type="text/javascript">
$(function()
{
$.connection.hub.url = 'http://<my url>/';
var chat = $.connection.chatHub;
alert(chat);
$.connection.hub.start().done(function()
{
alert("Connection succeeded");
}).fail(function()
{
alert("Connection failed");
});
});
</script>
</body>
</html>
Il problema è che non raggiunge mai il Avvisi di connessione riusciti o non riusciti e la chiamata di avviso (chat) non viene definita.
Ho provato diverse combinazioni per la linea $ .connection.hub.url
$.connection.hub.url = 'http://<My url>';
$.connection.hub.url = 'http://<My url>/';
$.connection.hub.url = 'http://<My url>/signalr';
$.connection.hub.url = 'http://<My url>/signalr/';
La console sviluppatore in Chrome e Firebug mi danno l'errore
Uncaught Error: SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/hubs'></script>.
sullo stesso dominio che funziona bene. Questo sta davvero iniziando a farmi impazzire, quindi ogni aiuto sarebbe apprezzato.
Grazie, Jason
Fantastico, grazie! In realtà avevo provato a usare il metodo proxy manuale (2) e non avevo fortuna ma dovevo aver avuto qualcos'altro di sbagliato in quel momento. Ho provato di nuovo e ho funzionato. Ora per farlo funzionare su PhoneGap, ma questa è una sfida per un altro giorno. – Jason
@ Jason - qualsiasi fortuna con PhoneGap e Signalr? Cercando di crearne uno la prossima settimana, sarebbe utile sentire qualcun altro che ha funzionato. –
@DeeMac - abbiamo finito per non andare avanti con il progetto (problema di finanziamento del cliente), quindi non ho ancora fatto nulla di più. Da quello che ho visto SignalR si è evoluto un bel po 'dall'ultima volta che ci ho lavorato. Divertiti, è una tecnologia piuttosto interessante. – Jason