Angular 2とTypeScriptでSignalRを使用しようとしています。それは私のクライアント側のコードが動作していないようです、特に接続を確立しました(生成されたプロキシはありません)ネゴシエーションリクエスト中のAngular SignalRエラー
私はAngular 2 TypeScript using SignalRに従っていますが、私は自動生成されたプロキシを使用しないようにSignalR /私のために作成された自動生成されたプロキシクラスを見てください。また、Javascriptの
私たちは、Windows認証とVisual Studio 2015を使用して、Windows 7の、IIS Expressの
を使用して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は、" 私はより多くの問題をはじめた、最新かつ にtypescriptですアップデートを導入したので、私これはただのタイピング のみ
コンソールでのために私はレスポンスコを参照してください格下げde要求されたURLのためのde http://localhost:58965/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22serverrefreshhub%22%7D%5D&_=1509976299819