是否可以在没有REST特定方式的情况下从角度4调用后端服务?
我想实现GUI,但是使用REST是受限制的,所以我想以其他方式调用服务。
简而言之,我想创建一个传统的MVC项目,其中Angular是VIEW。剩下的事情将像在传统框架中一样保留。
答案 0 :(得分:1)
您可以使用 WebSockets 与角度应用程序的后端进行通信。
WebSocket是与HTTP不同的协议,它使Web客户端(例如浏览器)和Web服务器之间的交互开销更低。如果使用TLS加密的连接,则通过TCP端口80或443进行通信。
服务示例:Real Time Apps with TypeScript: Integrating Web Sockets, 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());
});
}
}