教程:带SignalR 2的服务器广播

时间:2016-06-20 22:50:31

标签: asp.net-mvc signalr

我读了这篇优秀教程:http://www.asp.net/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr

然后我下载了NuGet示例包Microsoft.AspNet.SignalR.Sample 2.2.0https://www.nuget.org/packages/microsoft.aspnet.signalr.sample),然后我用vs 2015创建了一个带有索引页的新asp.net mvc 5项目。

我假设在app.MapSignalR()方法中调用Startup.Configuration

和很多人一样,我收到了错误:ticker.client is undefined.

真正的问题是var ticker = $.connection.stockTicker,始终为null,因为$.connection没有定义stockTicker属性 - 因为集线器无法实例化它。

有人知道这个错误的原因吗?

orignial教程是http://www.asp.net/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr我将示例项目zip托管到我的开放onedrive:https://onedrive.live.com/embed?cid=11357B31E08CCFEE&resid=11357B31E08CCFEE%21107&authkey=ALMOtmTFdCdsyV8

解决方案中的“SignalR.Sample”目录内容是集成在asp.net mvc 4/5/6项目中的基本模板。所以我将它集成在Views / Home / Index.cshtml页面中。 Js引用位于文件Views / Shared / _Layout.cshtml。

确切问题是var ticker = $ .connection.stockTicker为null(没有初始化与服务器的连接)。

如果你能帮助我,我会感谢你。

3 个答案:

答案 0 :(得分:2)

是的,您在_Layout中添加了jQueryStockticker脚本,但您没有添加信号器/集线器。必须按照以下确切顺序加载脚本:

<script src="~/Scripts/jquery.signalR-2.2.0.js"></script>
<script src="~/signalr/hubs"></script>
<script src="~/Scripts/SignalR.StockTicker.js"></script>

参考:  ASP.NET SignalR Hubs API Guide - JavaScript Client

答案 1 :(得分:0)

确保StockTicker.html中的JavaScript文件引用正确无误。也就是说,确保脚本标记中的jQuery版本(示例中为1.10.2)与项目的Scripts文件夹中的jQuery版本相同,并确保脚本标记中的SignalR版本为与项目的Scripts文件夹中的SignalR版本相同。如有必要,请更改脚本标记中的文件名。

答案 2 :(得分:0)

确保您有任何CPU作为您的活动解决方案平台。我将它切换到x64,这使得SignalR无法加载,因为它有一个不正确的平台。