簡體   English   中英

Signalr-無法從子目錄連接到集線器

[英]Signalr - Cannot connect to hub from child directory

我可以在ASP .NET應用程序中使用以下代碼注冊SignalR中間件:

public partial class Startup {
    public void Configuration(IAppBuilder app) {

        app.MapSignalR();

    }

}

我可以證明它是可行的,因為我可以訪問自動生成的JavaScript文件的“ / signalr / hubs” URL。

我可以使用./Default.aspx根目錄下的頁面連接到集線器

<!--Reference the SignalR library. -->
<script src="./Scripts/jquery.signalR-2.2.2.js"></script>

<!--Reference the autogenerated SignalR hub script. -->
<script src="./signalr/hubs"></script>

當我輸入命令$.connection.chatHub; 我懂了

init {state: {…}, connection: h…n.fn.init, hubName: "chathub", _: {…}, 
client: {…}, …}
client
:
{}
connection
:
hubConnection.fn.init {url: "/signalr", qs: null, lastError: null, _: {…}, 
logging: false, …}
hubName
:
"chathub"
server
:
{connect: ƒ, sendPrivateMessage: ƒ}
state
:
{}
_
:
{callbackMap: {…}}
__proto__
:
Object

但是,我無法使用以下代碼從位於子目錄中的頁面進行連接:

<script src="../Scripts/jquery.signalR-2.2.2.js"></script>

<!--Reference the autogenerated SignalR hub script. -->
<script src= "../signalr/hubs"></script>

當我嘗試使用命令$.connection.chatHub;連接到集線器時$.connection.chatHub; 我收到錯誤:

Uncaught TypeError: Cannot read property 'chatHub' of undefined
at <anonymous>:1:14

我已經在Google和stackoverflow上搜索了類似問題,但沒有成功。

有人可以幫我嗎? 謝謝。

您可以嘗試將SignalR集線器映射到“ / signalr”處的應用構建器管道。

var hubConfiguration = new HubConfiguration();
hubConfiguration.EnableDetailedErrors = true;
app.MapSignalR(hubConfiguration);

您可以嘗試將其捆綁並呈現到視圖中。

BundleConfig.cs

bundles.Add(new ScriptBundle("~/bundles/signalR").Include(
        "~/Scripts/jquery.signalR-{version}.min.js"
));

您認為:

@Scripts.Render("~/bundles/signalR")
<script src="~/signalr/hubs"></script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM