Próbuję uzyskać super proste połączenie koncentratora działające między domenami, ale bez powodzenia. Przeczytałem dziesiątki postów i zrobiłem wszystko, o czym wspomniałem, ale wciąż nie udało mi się.Jak uzyskać połączenie z routerem SignalR do pracy między domenami?
Moja piasta serwer jest tutaj
public class ChatHub : Hub
{
public void Send(string name, string message)
{
Clients.All.broadcastMessage(name, message);
}
}
Moi MapHubs serwera nazywają to tutaj
RouteTable.Routes.MapHubs(new HubConfiguration { EnableCrossDomain = true });
Każdy mój javascript klient jest tutaj
<!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>
Problem polega na tym, że nigdy nie osiągnie Połączenie zakończone powodzeniem lub nie powiodło się, a wywołanie alertu (czat) jest niezdefiniowane.
Próbowałem kilka kombinacji dla linii $ .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/';
konsoli programisty w Chrome i Firebug dać mi błąd
Uncaught Error: SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/hubs'></script>.
w tej samej domenie it działa w porządku. To naprawdę doprowadza mnie do szaleństwa, więc każda pomoc będzie doceniona.
Dzięki Jason
Niesamowite, dzięki! Tak naprawdę próbowałem używać ręcznej metody proxy (2) i nie miałem szczęścia, ale musiałem mieć coś innego w tym czasie. Próbowałem go ponownie i działałem. Teraz, aby działało na PhoneGap, ale to wyzwanie na kolejny dzień. – Jason
@Jason - jakiekolwiek szczęście z phonegap i signalr? Chcąc to zrobić w przyszłym tygodniu, byłoby pomocne usłyszeć, że ktoś inny sprawił, że to zadziałało. –
@DeeMac - nie zakończyliśmy projektu (kwestia finansowania klienta), więc nie zrobiłem z nim więcej. Z tego, co widziałem, SignalR ewoluował całkiem sporo, odkąd ostatni raz z nim pracowałem. Baw się dobrze, to całkiem fajna technologia. – Jason