我的Hub类没有使用信号R调用
本文关键字:信号 调用 Hub 我的 | 更新日期: 2023-09-27 17:51:19
我在我的应用程序中使用signalR。
客户端代码:
<script src="Scripts/jquery-1.6.4.js" type="text/javascript"></script>
<script src="Scripts/jquery.signalR-2.2.0.js" type="text/javascript"></script>
<script src="signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">
var data = $.connection.Hubclass;
alert(data); // data is undefine
</script>
我的hub类如下
public class Hubclass :Hub
{
public void getdata(string msg)
{
Clients.All.send(msg);
}
}
我有启动类在Owin如下
[assembly: OwinStartup(typeof(Startup1))]
public class Startup1
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
这是我在web.config中使用的配置:
<appSettings>
<add key="owin:appStartup" value="Startup1" />
</appSettings>
在全局。在ax类文件中,我还添加了以下代码:
RouteTable.Routes.MapHubs();
当我启动应用程序时,我得到以下错误:
错误CS0619 'SignalRRouteExtensions.MapHubs(RouteCollection)'是使用IAppBuilder。MapSignalR在Owin Startup类中。看到http://go.microsoft.com/fwlink/?LinkId=320578查看详细信息
如果我没记错的话,客户端代理是驼峰式的(生成的或动态的),所以你应该使用
$.connection.hubclass
或添加到集线器类名属性
[HubName("Hubclass")]
,你也不需要设置信号路由RouteTable.Routes.MapHubs自己的中间件会为你处理路由…
编辑:也许你可以检查你生成的代理是否通过信号/集线器请求正确下载,检查你的浏览器的网络选项卡。如果没有,则OWIN初始化可能有问题,也许您必须在appConfig中设置命名空间或友好名称以进行正确的启动类检测,检查启动检测
<add key="owin:appStartup" value="StartupDemo.ProductionStartup" />