СигналР не работает

Я пытаюсь что-то сделать с сигнализатором. Мой центр

 public class Customer : SignalR.Hubs.Hub
{
    public void Send(string uid, string from, string msg)
    {
        string make = from + uid;
        Clients.Addmsg(msg, make);
    }
}

И код на стороне клиента

 <script src="Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
 <script src="Scripts/jquery.signalR-0.5.3.min.js" type="text/javascript"></script>
<script src="/signalr/hubs" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
    $(function () {
        // Proxy created on the fly
        var care = $.connection.Customer;

        $("#broadcast").click(function () {
            // Call the chat method on the server
            care.send($('#msg').val(), "HariOm", "jai jai ram")
        .done(function () {
            console.log('Success!');
        })
        .fail(function (e) {
            console.warn(e);
        });
        });

    // Declare a function on the chat hub so the server can invoke it
    care.Addmsg = function (message, make) {
        alert(message + msg);
    };



        // Start the connection
        $.connection.hub.start();


    });


</script>

Я получаю эту ошибку после загрузки страницы

Uncaught TypeError: невозможно установить свойство «Addmsg» неопределенного


person Himanshu    schedule 02.11.2012    source источник
comment
Попробуйте это с именем концентратора в нижнем регистре: например. var care = $.connection.customer;   -  person nemesv    schedule 02.11.2012


Ответы (1)


Ваша проблема в том, что имя концентратора на стороне клиента должно быть строчным, так как генерация прокси генерирует имя концентратора в верблюжьем регистре. Итак, ваш прокси должен выглядеть так:

 var care = $.connection.customer;

Вот почему вы получаете сообщение об ошибке, что ваш объект care не определен. Это описано на странице SignalR Wiki — JS Client Hubs. Также, если вы посмотрите на сгенерированную страницу /signalr/hubs в своем браузере, вы увидите, что концентратор и его методы определены.

person Paige Cook    schedule 02.11.2012
comment
имена параметров также должны быть такими же, как они объявлены в хабе? - person Himanshu; 02.11.2012
comment
В большинстве примеров используются одни и те же имена параметров, но пока они одного типа, они должны работать. Но я не могу сказать наверняка. - person Paige Cook; 03.11.2012
comment
@PaigeCook У меня также были проблемы с заглавными буквами классов хабов, спасибо за объяснение - person thenewseattle; 30.11.2013