Как пинговать ip адрес в угловых 7 - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу пропинговать ip-адрес, чтобы получить ответ, либо он жив, либо нет, получив какой-то ответ или подтверждение.

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

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

, но получая ошибку

enter image description here

Пожалуйста, руководство !!!

1 Ответ

0 голосов
/ 04 апреля 2019

Вот пример, если кто-то должен сделать это с клиента, один из вариантов использования может быть, если вы ДОЛЖНЫ знать, находится ли клиент в сети или нет, например, в приложении 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 () важно принимать только первое значение, так как интервал будетсоздайте новый запрос, чтобы избежать утечек памяти.

{наблюдать: 'ответ'} - это то, как мы говорим httpClient возвращать полный объект http вместо одного тела, таким образом мыМожет получить код состояния.

...