如何在Angular 7中ping IP地址

时间:2018-12-18 04:08:09

标签: angular ping angular7

我想通过获取某种响应或确认来对ip地址进行ping操作,以获取响应是否存在。

ping() {
    return this.http.get('http://192.168.2.101')
}

this.deviceService.ping().subscribe(result => {
    console.log(result)
})

但出现错误

enter image description here

请指导!

1 个答案:

答案 0 :(得分:2)

以下是一个示例,如果有人必须从客户端执行此操作,则一个用例可能是您必须知道客户端是否在线(例如在Ionic应用程序中)。

请参见this.stackblitz

中的完整示例
import { HttpClient } from "@angular/common/http";
import { first } from "rxjs/operators";
import { Subscription } from 'rxjs';
...

private source = interval(3000);
...

this.source.subscribe(() => {
  this._http.get('https://www.google.com', { observe: 'response' })
  .pipe(first())
  .subscribe(resp => {
    if (resp.status === 200 ) {
      console.log(true)
    } else {
      console.log(false)
    }
  }, err => console.log(err));
});

first()对于仅获取第一个值很重要,因为interval将发出新请求,这是我们避免内存泄漏的方式。

{观察:'response'} 是我们告诉httpClient返回完整的http对象而不是仅返回正文的方式,这样我们可以获取状态代码。