Reindirizzamento di un utente all'interno di una classe SignalR Hub
-
26-10-2019 - |
Domanda
Ho un pulsante che gli utenti possono fare clic per fare un'offerta su qualcosa. Ogni offerta, trasmette l'ultimo tentativo di ogni altro cliente. Questo è il motivo per cui sto usando SignalR.
Ora, le esigenze degli utenti di avere crediti attivi, e se lui non ha crediti voglio reindirizzare lui da qualche parte.
L'approccio più evidente mi riesce, quindi ogni suggerimento è benvenuto.
//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");
}
Il codice di cui sopra è tutto all'interno della classe Chat che eredita dalla classe SignalR.Hub.
Soluzione
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");
}
Cliente:
$(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();
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow