如何在角度7中ping ip地址

问题描述 投票:2回答:1

我想通过获取某种响应或确认来ping ip-address以获得它是否存活的响应。

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

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

但得到错误

enter image description here

请指导!!!

angular ping angular7
1个回答
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会产生新的请求,这就是我们避免内存泄漏的方法。

{observe:'response'}是我们告诉httpClient返回完整的http对象而不是单独的主体的方式,这样我们就可以访问状态代码了。

© www.soinside.com 2019 - 2024. All rights reserved.