У меня было веб-приложение с главной страницей, и мне нужно показать предупреждение всем подключенным пользователям моего приложения. Я использовал класс запуска Owin и преобразованного сигнала RВызов метода SignalR Hub из кода позади
Затем создал концентратор, как показано ниже
namespace ArtWebApp
{
[HubName("artHub")]
public class ArtWebHub : Hub
{
public void Hello()
{
Clients.All.hello();
}
public void SayMessage()
{
this.Clients.All.showmessage();
}
}
}
Тогда в MasterPage я добавил Javascript ниже
<script src="Scripts/jquery-1.6.4.js"></script>
<script src="Scripts/jquery.signalR-2.2.1.js"></script>
<script type="text/javascript">
$(function() {
debugger;
var connection = $.hubConnection("")
var hub = connection.createHubProxy('artHub');
hub.on('showmessage', function() {
alert('Hi');
});
connection.start().done();
//connection.start(function() {
// hub.invoke('SayMessage');
//});
});
</script>
Это прекрасно работает, когда метод Hub вызывается с той же страницы, но когда я попытался вызвать метод от нажатия кнопки на странице, его не работает
protected void Button1_Click(object sender, EventArgs e)
{ var hubContext = GlobalHost.ConnectionManager.GetHubContext<ArtWebApp.ArtWebHub>();
hubContext.Clients.All.SayMessage();
}
Может кто-нибудь предложить мне вопрос
Спасибо за ответ .the проблема решена, и Signalr работает почти на всех страницах с главной страницы. Но на некоторых страницах я получаю сообщение об ошибке «Объект не поддерживает свойство или метод hubconnection», вы можете мне что-нибудь предложить –
@SreenathGanga Обязательно проверьте, что вы загрузили клиентскую библиотеку SignalR на этих страницах. Обычно это проблема, когда вы получаете эту ошибку. – scartag
Я определил его на главной странице с абсолютным url –