Signalr - 无法连接到集线器从子目录
问题描述:
我可以在ASP .NET应用程序使用下面的代码注册SignalR中间件:Signalr - 无法连接到集线器从子目录
public partial class Startup {
public void Configuration(IAppBuilder app) {
app.MapSignalR();
}
}
我可以证明这个工程,我可以访问“/ signalr /集线器“URL,用于自动生成JavaScript文件。
我可以从位于根./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;
我得到的错误连接到集线器:
Uncaught TypeError: Cannot read property 'chatHub' of undefined
at <anonymous>:1:14
我已经搜索在谷歌类似的问题,并没有成功计算器。
有人可以帮助我吗?谢谢。
答
您可以尝试将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>