Skip to content

Instantly share code, notes, and snippets.

import { Injectable } from '@angular/core';
import { WebSocketSubject } from 'rxjs/webSocket';
@Injectable()
export class WebSocketService {
private _ws: WebSocketSubject<string>;
constructor() { }
WebSocket client!
<button (click)="sendMessage()">Click me to send message!</button>
import { Component } from '@angular/core';
import { WebSocketService } from './services/web-socket.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor(private _ws: WebSocketService) {
export interface Executioner{
execute(data): void;
}
import { MessageTypeEnum } from "./message-type.enum";
export interface BaseMessage<T> {
type: MessageTypeEnum;
data: T;
}
export enum MessageTypeEnum {
ConsoleLog,
ConsoleError,
ConsoleTable
}
import { Injectable } from '@angular/core';
import { Executioner } from '../model/executioner';
import { ErrorUpdate } from '../model/error-update';
@Injectable({
providedIn: 'root'
})
export class ErrorService implements Executioner{
import { Injector } from "@angular/core";
import { MessageTypeEnum } from "../model/message-type.enum";
import { LogService } from "../services/log.service";
import { ErrorService } from "../services/error.service";
import { TableService } from "../services/table.service";
import { Executioner } from "../model/executioner";
export class ServiceResolver {
static getService(message: MessageTypeEnum, injector: Injector): Executioner {
switch(message){
import { Injectable, Injector } from '@angular/core';
import { Executioner } from '../model/executioner';
import { ServiceLocator } from '../services/service-locator';
import { MessageTypeEnum } from '../model/message-type.enum';
@Injectable({
providedIn: 'root'
})
export class RegistryService {
private static INSTANCE: RegistryService | undefined = null;
import { Injector } from "@angular/core";
export class ServiceLocator {
static injector: Injector;
}