我有一个带有主页的Web应用程序,我需要向我的应用程序的所有连接用户显示警报。我已经使用Owin启动类并映射了SignalR。
然后像下面这样创建了一个Hub:
namespace ArtWebApp
{
[HubName("artHub")]
public class ArtWebHub : Hub
{
public void Hello()
{
Clients.All.hello();
}
public void SayMessage()
{
this.Clients.All.showmessage();
}
}
}
然后在主页面中,我按照以下方式添加了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();
}
有人能为我提供问题建议吗?