Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 信号器未连接_Javascript_Signalr - Fatal编程技术网

Javascript 信号器未连接

Javascript 信号器未连接,javascript,signalr,Javascript,Signalr,我对JavaScript非常陌生。我试图用JavaScript实现一个简单的信号服务器回调 首先是_Layout.cshtml <body> <div class="container body-content"> @RenderBody() </div> @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap")

我对JavaScript非常陌生。我试图用JavaScript实现一个简单的信号服务器回调

首先是_Layout.cshtml

<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