Вопрос

У меня есть кнопка, которую пользователи могут нажать, чтобы что -то сделать. Каждая ставка транслирует последнюю заявку на любого другого клиента. Вот почему я использую SignalR.

Теперь пользователь должен иметь активные кредиты, и если у него нет кредитов, я хочу перенаправить его где -нибудь.

Более очевидный подход меня терпит неудачу, поэтому любые предложения приветствуются.

//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");
}

Приведенный выше код находится в классе чата, который наследует от класса Signal.hub.

Это было полезно?

Решение

Сервер:

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");
}

Клиент:

$(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();
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top