CaliStyle/generator-treefrog

View on GitHub
archetype/lib/angular2/app/services/websocket.front.service.ts

Summary

Maintainability
A
0 mins
Test Coverage
import * as Primus from 'primus';
import { Injectable }    from '@angular/core';
import {WebsocketService} from "../interfaces/websocket.service";
import {NotificationService} from "./notification.service";

@Injectable()
export class WebsocketServiceFront {
  constructor(private notificationService: NotificationService) {}

  init() {
    //
    // Tell primus to create a new connect to the current domain/port/protocol
    //
    const primus = Primus.connect('ws://localhost:3000?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoxLCJ1c2VybmFtZSI6ImFkbWluIiwiZW1haWwiOiJhZG1pbkBnbWFpbC5jb20iLCJmaXJzdE5hbWUiOm51bGwsImxhc3ROYW1lIjpudWxsLCJtaWRkbGVOYW1lIjpudWxsLCJwaG9uZSI6bnVsbCwibW9iaWxlIjpudWxsLCJhZGRyZXNzT25lIjpudWxsLCJhZGRyZXNzVHdvIjpudWxsLCJhZGRyZXNzVGhyZWUiOm51bGwsImNpdHkiOm51bGwsInN0YXRlIjpudWxsLCJwb3N0YWwiOm51bGwsImNvdW50cnkiOm51bGwsImNyZWF0ZWRBdCI6IjIwMTYtMDctMjNUMTE6MjU6MjQuNTI0WiIsInVwZGF0ZWRBdCI6IjIwMTYtMDctMjNUMTE6MjU6MjQuNTI0WiIsInBhc3Nwb3J0cyI6W3siaWQiOjEsInByb3RvY29sIjoibG9jYWwiLCJwYXNzd29yZCI6IiQyYSQxMCQ3aDhOV3pTYUw1UE1iUGVYRGd3UGRPZldGbW01TnJ1dTBvMmx6WmdYaEJRUi5kRzJiaDc2LiIsInByb3ZpZGVyIjpudWxsLCJpZGVudGlmaWVyIjpudWxsLCJ0b2tlbnMiOm51bGwsImNyZWF0ZWRBdCI6IjIwMTYtMDctMjNUMTE6MjU6MjQuNTQ5WiIsInVwZGF0ZWRBdCI6IjIwMTYtMDctMjNUMTE6MjU6MjQuNTQ5WiIsIlVzZXJJZCI6MX1dfSwiaWF0IjoxNDY5MjczMzE5LCJleHAiOjE0NjkzNTk3MTksImF1ZCI6ImxvY2FsaG9zdCIsImlzcyI6ImxvY2FsaG9zdCJ9.9PRdh-7TURLEqDRxe1_fvRVA1xe72c-mJIbMce_-8uE');

    (<any> primus).join = function (room, fn) {
      (<any> primus).send('join', room, fn)
    };

    (<any> primus).leave = function (room, fn) {
      (<any> primus).send('leave', room, fn)
    };

    primus.on('create', data => {
      console.log('create', data)
    });
    primus.on('update', data => {
      console.log('update', data)
    });
    primus.on('destroy', data => {
      console.log('destroy', data)
    });
    primus.on('notification', data => {
      this.notificationService.manageNotification(data)
      console.log('notification', data)
    });

    (<any> primus).join('notification');
  }

}

export const BROWSER_WEBSOCKET_PROVIDERS = [
  WebsocketServiceFront,
  WebsocketService,
  { provide: WebsocketService, useClass: WebsocketServiceFront }
];