Javascript 信号器未连接
我对JavaScript非常陌生。我试图用JavaScript实现一个简单的信号服务器回调 首先是_Layout.cshtmlJavascript 信号器未连接,javascript,signalr,Javascript,Signalr,我对JavaScript非常陌生。我试图用JavaScript实现一个简单的信号服务器回调 首先是_Layout.cshtml <body> <div class="container body-content"> @RenderBody() </div> @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap")
<body>
<div class="container body-content">
@RenderBody()
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
@RenderBody()
@Scripts.Render(“~/bundles/jquery”)
@Scripts.Render(“~/bundles/bootstrap”)
@RenderSection(“脚本”,必需:false)
接下来是my Index.html
<body>
@section scripts
{
<script src="/Scripts/jquery-3.1.1.min.js"></script>
<script src="/Scripts/jquery.signalR-2.1.2.js"></script>
<script src="/signalr/hubs"></script>
<script type="text/javascript">
$(function () {
console.log("HELLO WORLD");
$.connection.hub.url = 'http://blah:8094/signalr';
var proxy = $.connection.DashboardHub;
proxy.client.NotifyAllClientsOfChanges = function () {
var searchUrl = "Home/GetData";
$.ajax({
url: searchUrl,
type: "POST",
success: function (data) {
$("#divData").html(data);
}
});
};
$.connection.hub.start({ transport: 'auto', xdomain: true })
.done(function () {
console.log('Connected.');
})
.fail(function (e) {
console.log('Unable to connect:' + e);
});
});
</script>
}
@using (@Html.BeginForm("Index", "Home"))
{
<div id="divData">
@{
var grid = new WebGrid(Model);
@grid.GetHtml(
mode: WebGridPagerModes.All,
columns:
grid.Columns
(
grid.Column(columnName: "SiteId", header: "Site Id", format: @<text>@item.SiteId</text>),
grid.Column(columnName: "Instrument", header: "Instrument", format: @<text>@item.InstrumentId</text> ),
.
.
.
))
}
</div>
}
</body>
@节脚本
{
$(函数(){
log(“你好世界”);
$.connection.hub.url='0http://blah:8094/signalr';
var proxy=$.connection.DashboardHub;
proxy.client.NotifyAllClientsOfChanges=函数(){
var searchUrl=“Home/GetData”;
$.ajax({
url:searchUrl,
类型:“POST”,
成功:功能(数据){
$(“#divData”).html(数据);
}
});
};
$.connection.hub.start({transport:'auto',xdomain:true})
.done(函数(){
console.log('Connected');
})
.失败(功能(e){
console.log('无法连接:'+e);
});
});
}
@使用(@Html.BeginForm(“Index”,“Home”))
{
@{
var grid=新的WebGrid(模型);
@grid.GetHtml(
模式:WebGridPagerModes.All,
柱:
网格.列
(
grid.Column(columnName:“SiteId”,标题:“SiteId”,格式:@@item.SiteId),
grid.Column(columnName:“Instrument”,标题:“Instrument”,格式:@@item.InstrumentId),
.
.
.
))
}
}
我在顶部看到了“HELLO WORLD”控制台日志,但没有看到“已连接”或“无法连接”的控制台日志
我在控制台中看到一个错误,上面写着“无法读取未定义的属性'client'”
我关注过很多类似主题的帖子,尝试过很多东西。我不能完全确定我的代码是否正确
有人知道怎么了吗
谢谢我对整个功能不太清楚,但对于初学者来说: var proxy=$.connection.DashboardHub;
应该是
var proxy=$.connection.dashboardHub
需要从小写字母开始,我发现了一些错误。首先,如果您使用跨域服务器作为您的信号集线器,那么您应该将其包含在头中,而不是本地头中
<script src="/Scripts/jquery-3.1.1.min.js"></script>
<script src="/Scripts/jquery.signalR-2.1.2.js"></script>
<script src="http://blah:8094/signalr/hubs"></script>
第三,既然是GET方法,为什么要在AJAX中使用POST方法?请参考以下URL,希望对您有所帮助
真的吗?它在hub.cs文件中是大写的。。我改了,但没有任何效果。同样的问题也存在。是的,即使大写-我记得这咬了我。从他们的例子来看。公共类ContosoChatHub:Hub然后客户端变量myHubProxy=$。connection.ContosoChatHub还请确保对/signalr/Hub的脚本引用正确。请参阅客户端设置。在应用程序启动时配置Hub时,是否可以发布仪表板Hub的代码?
var proxy = $.connection.dashboardHub;
proxy.client.notifyAllClientsOfChanges