Angular2 + http en un intervalo

Soy bastante nuevo en angular y rxjs. Estoy tratando de crear una aplicación angular2 que obtenga algunos datos del archivo de texto servido estáticamente (Localmente en el servidor), que me gustaría recuperar y asignar a Datamodel usando el proveedor http de Angular2 y el mapa de rxjs en un momento fijointerval(5000). Para reflejar cualquier cambio en el archivo txt servido.

Con rxjs 4.x sé que podrías usarObservable.interval(5000) para hacer el trabajo, pero no parece existir en rxjs 5. Mi solución actual actualizo toda la aplicación usando<meta http-equiv="refresh" content="5" > Lo que recarga toda la página y, por lo tanto, vuelve a cargar los datos.

Entonces, lo que realmente me gustaría es alguna forma de hacer esto trabajando con observables, tal vez para verificar si se han producido cambios. o simplemente para recargar los datos nuevamente.

Cualquier ayuda u otra / mejor manera será muy apreciada.

Lo que tengo hasta ahora:

@Injectable()
export class DataService {

    constructor(private http:Http){}

    getData(url) {
        return this.http.get(url)
            .map(res => {
                return res.text();
            })
            .map(res => {
                return res.split("\n");
            })
            .map(res => {
                var dataModels: DataModel[] = [];
                res.forEach(str => {
                    var s = str.split(",");
                    if(s[0] !== "") {
                        dataModels.push(new DataModel(s[0], parseInt(s[1]), parseInt(s[2])));
                    }
                });
                return dataModels;
            })
    }
}

@Component({
selector: 'my-app',
template: `Some html to display the data`,
providers: [DataService],
export class AppComponent {

data:DataModel[];

constructor(dataService:DataService) {}

ngOnInit() {
    this.dataService.getData('url').subscribe(
        res => {
            this.data= res;

        },
        err => console.log(err),
        () => console.log("Data received")
        );
    }
}

Dependencias: package.json

"dependencies": {
  "angular2": "^2.0.0-beta.3",
  "bootstrap": "^4.0.0-alpha.2",
  "es6-promise": "^3.0.2",
  "es6-shim": "^0.33.13",
  "jquery": "^2.2.0",
  "reflect-metadata": "^0.1.2",
  "rxjs": "^5.0.0-beta.0",
  "systemjs": "^0.19.20",
  "zone.js": "^0.5.11"
},
"devDependencies": {
  "typescript": "^1.7.5"
}

importaciones index.html:

<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/systemjs/dist/system-polyfills.js"></script>

<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="node_modules/angular2/bundles/router.dev.js"></script>
<script src="node_modules/angular2/bundles/http.dev.js"></script>

Respuestas a la pregunta(4)

Su respuesta a la pregunta