ng2-signalr在前进和后退时冻结网站

时间:2018-08-27 08:36:39

标签: signalr

我找不到答案,为什么当我在实现解析器的页面中来回移动时,突然信号停止工作,并且所有Angular 6都冻结了。 (您无法单击任何链接)该网站看起来不错,但没有任何效果。

我正在使用
“ ng2-signalr”:“ ^ 6.1.0”, 角度6.0.3

我实现了ng2-signalr, 解析器在开始时不起作用,因此我将其更改为使用ISignalRConnection 我最多可以在第6次应用程序中进行5次来回转发

export class SignalrConnectionService implements 
Resolve<ISignalRConnection> {
@Injectable()
export class SignalrConnectionService implements Resolve<ISignalRConnection> 
{
    constructor(private _signalR: SignalR) { }
    resolve() {
        console.log('ConnectionResolver. Resolving...');
        //this._signalR.createConnection();
        try {
            return this._signalR.connect();
        }
        catch (err) {
            console.log("Error in _signalR.connect: " + err.message);
        }
        //return this._signalR.createConnection();
    }
}

在路由中,我做了:

path: 'my_path',
component: MyComponent,
canActivate: [AuthGuard],
resolve: { connection: SignalrConnectionService }

如果我删除了解析行,则signalR被取消并且一切正常(没有冻结,也没有signalR),但是我需要它。.

有帮助吗?

1 个答案:

答案 0 :(得分:0)

所以我找到了解决方案。 看来您不需要使用解析器,而是在构造函数中执行以下操作:

  

constructor(private _signalR:SignalR){

     

this._connection = _signalR.createConnection();

     

}

只有这样,您才能在 ngInit 中放置如下代码:

  

this._connection.start()。then((c)=> {

     

//曾经发生过

    });
     

});

这似乎解决了问题:)