Сигналр не работает
Я пытаюсь что-то сделать с сигналом. Мой концентратор
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' из undefined
1 ответ:
Ваша проблема заключается в том, что имя концентратора на стороне клиента должно быть в нижнем регистре, так как генерация прокси генерирует имя концентратора в случае camel. Поэтому ваш прокси должен выглядеть следующим образом:
var care = $.connection.customer;
, который является, почему вы получаете сообщение об ошибке, что ваш
care
объект неопределен. Это описано на страницеSignalR Wiki - JS Client Hubs . Кроме того, если вы посмотрите на созданную страницу/signalr/hubs
в вашем браузере, вы увидите концентратор и его методы, определенные.