在 Angular2 应用程序中使用 angular2-websocket 关闭 websocket 连接时,如何重新连接它?

Posted

技术标签:

【中文标题】在 Angular2 应用程序中使用 angular2-websocket 关闭 websocket 连接时,如何重新连接它?【英文标题】:How can i reconnect websocket connection when it is closed using angular2-websocket in Angular2 Application? 【发布时间】:2017-01-24 10:31:56 【问题描述】:

我是 angular2 框架的新手。我使用 angular2-websocket 插件在我的项目中使用 websockets。我的情况是,如果一旦套接字连接关闭,则在服务器端打开套接字时它不会重新连接。我怎么能用angular2-websocket来做到这一点?我的套接字打开后如何重新连接??

这是我的 app.component.ts 代码 sn-p

import  Component, OnInit  from '@angular/core';
import  $WebSocket, WebSocketSendMode  from 'angular2-websocket/angular2-websocket';
import  WebsocketService  from '../../../services/websocket.service';

@Component(
  selector: 'app-init',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
)
export class AppComponent implements OnInit 

  constructor(private websocket:WebsocketService)  
  ngOnInit() 
      this.fnGraphInit("ws://10.1.40.117:5555");
  


fnGraphInit(url)

let ws = new $WebSocket(url);
    ws.getDataStream().subscribe(
      (msg) =>  
        console.log(msg.data);

      (msg) => 
        console.log("error", msg);

      ,
      () => 
        console.log("complete");

      
    );




请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

尝试使用 WebSocketConfig:

const webSocketConfig =  reconnectIfNotNormalClose: true  as WebSocketConfig;

this.ws                  = new $WebSocket(url, null, webSocketConfig);

【讨论】:

以上是关于在 Angular2 应用程序中使用 angular2-websocket 关闭 websocket 连接时,如何重新连接它?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Nginx 为 Angular2 CLI 构建的应用程序提供服务会抛出 404、403

错误:angular2 中没有 HttpHandler 的提供者

在 typescript / angular2 环境和后端的 nodejs 中设置持久会话时遇到问题

angular2 必须使用 nodejs,我可以使用 apache 服务器运行吗?

如何在创建离子应用程序时指定角度版本

Angular 2:啥使服务成为“外部”角度区域?