我正试图在一个asp.net(不是核心)和angular(目前有10个)应用程序中实现signalr。startupidocs正在使用owin。
我能找到的每一个文档或示例都是针对ASP.NET核心的,或者没有使用Angular,所以有人能给我指出一个好的方向吗?
我能找到的最接近这个组合的是这个指南:https://www.c-sharpcorner.com/article/asp-net-signalr-angular2-and-typescript-real-time-clock/,但是我一直收到"无法读取未定义的属性" hubConnection ""错误,可能是因为我不明白"$"在SignalRService类中的作用,因为我开始使用Angular 7和更高版本。
任何帮助都将不胜感激。
4条答案
按热度按时间xggvc2p61#
U可以使用此链接中的示例SignalR using Angular 10
步骤:
1.安装所需的信号库
npm i@微软/信号@最新--保存
1.导入所需的类
从"@microsoft/signalr "导入{集线器连接、集线器连接生成器、日志级别};
1.连接到集线器
1.侦听集线器上的方法
1.启动连接
虚拟示例的外观:
注:无需安装"signalr-protocol-msgpack"
irtuqstp2#
旧的(非核心的)SignalR javascript客户端依赖于jQuery,所以在你的Angular 应用中添加对SignalR的支持的最好方法是
1.将jquery和signalr npm包添加到项目中
npm安装jquery信号--保存
1.添加@types/jquery和@types/signalr npm包,以便为这两个包提供类型支持。
npm安装@类型/jquery @类型/信号r--保存设备
1.编辑angular.json文件projects/[projectname]/architect/build/scripts节点,以包含jquery和signalr脚本(完整文件请参见下面的示例)
“脚本”:[./node_modules/jquery/dist/jquery.min.js”,./node_modules/signalr/jquery.signalR.js”]
1.编辑tsconfig.app.json文件并将“jquery”、“signalr”添加到“compilerOptions”/“types”列表中。(完整文件请参见下面的示例)
angular.json应该是这样的(这里的项目名称是signalr demo)
下面是tsconfig.app.json的外观:
cmssoen23#
我犯了一个简单的错误,没有在Service的声明之上声明jQuery符号:
例如:
这个关于如何使用jQuery和Angular的链接告诉了我:
https://blog.bitsrc.io/how-to-use-jquery-with-angular-when-you-absolutely-have-to-42c8b6a37ff9
km0tfn4u4#
Signalr依赖于jquery,因此首先需要安装
以及它们的类型
将脚本添加到angular-cli.json
创建信号服务.ts文件:
别忘了声明jquery符号
现在您可以在组件中使用signalr服务:
希望这能有所帮助