Angular 2 및 TypeScript와 함께 SignalR을 사용하려고합니다. 내 클라이언트 측 코드가 작동하지 않는 것 같습니다. 특히 생성 된 프록시를 사용하지 않고 연결을 설정하십시오.협상 요청시 Angular SignalR 오류
나는 Angular 2 TypeScript using SignalR을 따라 갔지만, 자동 생성 프록시를 사용하지 않기 때문에 SignalR/Hubs 스크립트 경로는 포함하지 않았습니다. 나를 위해 생성 된 자동 생성 된 프록시 클래스를보십시오. 또한 내가 협상 요청 중에이 오류를
오류가 자바 스크립트
우리는 Windows 인증 및 Visual Studio 2015, 윈도우 7을 사용, IIS 익스프레스
를 사용 SignalR documentation 작성된 코드를 언급했다.
허브 클래스
public class ServerRefreshHub : Hub
{
public ServerRefreshHub()
{
}
public override Task OnConnected()
{
//It seems hub is not connected as client code fails
}
public static void NotifyUsers()
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<ServerRefreshHub>();
context.Clients.All.MessageFromServer("Hello");
}
}
Asp.Net WebAPI 시작
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
app.Map(
"/signalr",
map =>
{
var hubConfiguration = new HubConfiguration {
EnableDetailedErrors = true };
map.RunSignalR(hubConfiguration);
});
}
}
각도 코드
declare var $: any;
@Injectable()
export class ServerNotifier {
private connection: any;
private proxy: any;
constructor() {
this.connection = $.hubConnection();
this.proxy = this.connection.createHubProxy('userCacheRefreshHub');
this.proxy.on('MessageFromServer', (message: string) =>
this.onMessageFromServer(message));
this.connection.start().done((data: any) => {
console.log('Now connected ' + data.transport.name + ', connection ID= ' + data.id);
}).fail((error: any) => {
console.log('Could not connect ' + error);
});
}
private onMessageFromServer(message: string) {
}
}
Package.Json
"@types/jquery": "2.0.47",
"@types/signalr": "^2.2.35",
"signalr": "^2.2.2"
참고 :
"유형/JQuery와 @"가 "^ 3.2.16는"최근에 타이프 라이터 업데이트를 소개하고 좀 더 문제를 받기 시작, 그래서 단지 typings 만
내가 볼 콘솔에서
200 응답 공동이 다운 그레이드 de 요청한 URL에 대해 http://localhost:58965/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22serverrefreshhub%22%7D%5D&_=1509976299819