Umleitung eines Benutzer aus einer SignalR -Hub -Klasse aus
-
26-10-2019 - |
Frage
Ich habe eine Schaltfläche, auf der Benutzer klicken können, um auf etwas zu bieten. Jedes Gebot sendet das neueste Gebot an jeden anderen Kunden. Das ist der Grund, warum ich SignalR verwende.
Jetzt muss der Benutzer aktive Credits haben, und wenn er keine Credits hat, möchte ich ihn irgendwo umleiten.
Der offensichtlichere Ansatz scheitert mir, daher ist ein Vorschlag willkommen.
//Does the user have credits to spend?
if (user.LanceCreditBalance >= 1)
{
//populate the "ar" object and send it out to everybody.
var result = Json.Encode(ar);
Clients.addMessage(result);
}
else
{
//And this isn't working as expected. Doesn't redirect
//And causes a 302 error when viewing the Firebug console in Firefox.
HttpContext.Current.Response.Redirect(@"http://www.google.com");
}
Der obige Code befindet sich alle in der Chat -Klasse, die von der SignalR.hub -Klasse erbt.
Lösung
Server:
if(user.LanceCreditBalance >= 1)
{
var result = Json.Encode(ar);
// send Message to all clients
Clients.addMessage(result);
}
else
{
// Invoke a js-Function only on the current client
Caller.redirectMe("http://www.google.com");
}
Klient:
$(function () {
var chat = $.connection.chat;
chat.addMessage = function(message) {
// do something
};
// function the server can invoke
chat.redirectMe = function(target) {
window.location = target;
};
$.connection.hub.start();
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow