我有一个拍卖应用程序,我需要在其中显示每个用户的实时出价。我想使用的技术是前端的 Angular 6、实时通信的 Signal R 和后端 api 的 Asp.net MVC。我尝试使用@aspnet/signalR 以及 ng2-signalR
以下是我的一些代码:
App.component.ts
import { Component, Injectable } from '@angular/core';
import { SignalR, SignalRConnection, ISignalRConnection, BroadcastEventListener } from '../../node_modules/ng2-signalr';
import { Route, ActivatedRoute, Resolve } from '@angular/router';
import { BidService } from './app.service';
import { BidBlotter } from './Bid.Model';
import * as signalR from '@aspnet/signalr';
import { HubConnection } from '@aspnet/signalr';
// import '~/signalr/hubs';
declare var $: any;
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Angular 5应用程序中使用SignalR.
我从DefinitelyTyped安装了这些强类型:
npm install --save @types/jquery
npm install --save @types/signalr
Run Code Online (Sandbox Code Playgroud)
我的packages.json
节目版本2.5.3中的打字稿.
现在我试图像这样使用它:
import { Injectable } from '@angular/core';
@Injectable()
export class SignalRService {
constructor() {}
public ConnectTo(url: string): void {
var hubConnection = $.hubConnection();
var hubProxy = hubConnection.createHubProxy('DashboardHub');
hubProxy.on('Example', (e: any) => {
console.log('worked');
});
hubConnection.start();
}
}
Run Code Online (Sandbox Code Playgroud)
编译器抱怨如下:
error TS2304: Cannot find name '$'.
Run Code Online (Sandbox Code Playgroud)
...即使intellisense可以找到$.hub
:
如果我尝试添加declare var $ :any;
到我的文件,它会编译,但我在浏览器的控制台中收到另一个错误:$.hubConnection is not a function …
signalr ×2
angular ×1
angular5 ×1
angular6 ×1
asp.net-mvc ×1
npm ×1
signalr-hub ×1
typescript ×1