NetanelBasal
2/20/2018 - 4:41 AM

socket-io-1.ts

export abstract class SocketService {
  abstract connect();
  abstract subscribe();
  abstract emit();
  abstract disconnect();
}

export class SocketIOService extends SocketService {
   ...
}
export class AppComponent {
  constructor(private socket: SocketService) {
    socket.connect();
  }
}

@NgModule({
  ...
  providers: [{
    provide: SocketService,
    useClass: SocketIOService
  }]
})
export class AppModule {
}