$。connection是ASP.Net Webforms的未定义SignalR

问题描述 投票:0回答:1

我正在尝试在ASP.NET 4.0 Web窗体中使用SignalR。

我遵循了一个教程,我能够使SignalR在default.aspx上工作,该文件位于我项目的根目录,无需登录即可访问。

现在,我想在登录后可访问的页面上使用它。

一个主页面,我有以下代码片段。

<head>
 ....
 ...
<script src="../Scripts/jquery-1.6.4.js"></script>
<script src="../Scripts/jquery.signalR-2.0.0.js"></script>
<script src="/signalr/hubs"></script>
<script type="text/javascript">
    $(function () {

        var logger = $.connection.myhub1;

        logger.client.logMessage = function (msg) {
            console.log(msg);
            //$("#logUl").append("<li>" + msg + "</li>");

        };

        $.connection.hub.start({ pingInterval: 10000 }).done(function () {
            alert('Hub starts');
        }).fail(function (e) {
            alert('There was an error');
            console.error(e);
        });
        $.connection.hub.logging = true;

    });
</script>

...
...

</head>

Hub类是MyHub1,它在根级别上

Imports Microsoft.AspNet.SignalR
Imports Microsoft.AspNet.SignalR.Hubs

<HubName("myhub1")>
Public Class MyHub1
    Inherits Hub

    Public Shared ReadOnly _Timer As System.Timers.Timer = New System.Timers.Timer()

    Shared Sub New()
        _Timer.Interval = 2000
        AddHandler _Timer.Elapsed, AddressOf TimerElapsed
        _Timer.Start()
    End Sub

    Private Shared Sub TimerElapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
        Dim hub = GlobalHost.ConnectionManager.GetHubContext("myhub1")
        hub.Clients.All.logMessage(String.Format("{0} - Still running", DateTime.UtcNow))
    End Sub
    Public Shared Sub LogMessage(ByVal str As String)
        Dim hub = GlobalHost.ConnectionManager.GetHubContext("myhub1")
        hub.Clients.All.logMessage(str)
    End Sub
End Class

母版页正在应用到UserDefault.aspx,后者已应用母版并且具有上面给出的javascript代码。在default.aspx上,当用户登录后提供凭据时UserDefault.aspx向用户显示。

现在何时使用js文件创建开发工具signalR / hubs文件夹,但在控制台中出现错误

$。connection未定义。...

我在这里做什么错?

我需要移动MyHub1吗?

asp.net signalr signalr-hub signalr.client
1个回答
0
投票

我设法通过移动脚本的引用来解决此问题。感谢这篇文章SignalR $.connection is undefined

[ jquery.js文件。

我将引用移至脚本块,如下所示:

<Script> ... ... <asp:ScriptReference Path="~/Scripts/jquery.signalR-2.0.0.js" /> <asp:ScriptReference Path="~/signalr/hubs" /> </Script>

上面的脚本块之后,也移动了一段客户代码。

我进行此更改后,它开始工作。

© www.soinside.com 2019 - 2024. All rights reserved.