Угловой сервисный вызов без вызова покоя - PullRequest
0 голосов
/ 08 октября 2018

Можно ли позвонить в конечную службу из angular 4 без специального способа REST?

Я хочу реализовать графический интерфейс, но использование REST ограничено, поэтому я хочу другой способ вызова своей службы.

Короче говоря, я хочу создать традиционный проект MVC, где Angular - это VIEW.остальная часть останется такой же, как в традиционных рамках.

1 Ответ

0 голосов
/ 08 октября 2018

Вы можете использовать WebSockets для связи с внутренним сервером для углового приложения.

WebSocket - это протокол, отличный от HTTP, он обеспечивает взаимодействие между веб-клиентом (например, браузером).) и веб-сервер с более низкими издержками.Связь осуществляется через TCP-порт № 80 или 443. В случае соединений с шифрованием TLS.

Пример службы: Приложения реального времени с TypeScript: интеграция веб-сокетов, Node & Angular

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { Observer } from 'rxjs/Observer';
import { Message } from '../model/message';
import { Event } from '../model/event';

import * as socketIo from 'socket.io-client';

const SERVER_URL = 'http://localhost:8080';

@Injectable()
export class SocketService {
    private socket;

    public initSocket(): void {
        this.socket = socketIo(SERVER_URL);
    }

    public send(message: Message): void {
        this.socket.emit('message', message);
    }

    public onMessage(): Observable<Message> {
        return new Observable<Message>(observer => {
            this.socket.on('message', (data: Message) => observer.next(data));
        });
    }

    public onEvent(event: Event): Observable<any> {
        return new Observable<Event>(observer => {
            this.socket.on(event, () => observer.next());
        });
    }
} 
...