Advertisement
Guest User

Untitled

a guest
Jul 31st, 2016
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import {Injectable} from "@angular/core";
  2.     import {WebSocketBroadcaster} from "./websocket.broadcaster";
  3.    
  4.     @Injectable()
  5.     export class WebSocketService {
  6.         protected ws: WebSocket = null;
  7.    
  8.         protected broadcaster:WebSocketBroadcaster;
  9.    
  10.         constructor() {
  11.             this.broadcaster = new WebSocketBroadcaster();
  12.         }
  13.    
  14.         run(onMessage: any) {
  15.             if (this.ws === null) {
  16.                 this.ws = new WebSocket('ws://localhost:8082');
  17.                 this.ws.onopen = this.onOpen;
  18.                 this.ws.onmessage = onMessage;
  19.                 this.ws.onclose = this.onClose;
  20.                 this.ws.onerror = this.onError;
  21.             }
  22.         }
  23.        
  24.         public onOpen = () => {
  25.            
  26.         }
  27.    
  28.         public send = (data) => {
  29.             if (typeof data === 'string') {
  30.                 this.ws.send(data);
  31.             } else if (typeof data === 'object') {
  32.                 this.ws.send(JSON.stringify(data));
  33.             }
  34.         }
  35.    
  36.         public onError = (event: Event): any => {
  37.             //console.error('WebSocket error: ', event);
  38.    
  39.             this.broadcaster.ee.emit({
  40.                 data: 'blbasdasdasd'
  41.             });
  42.             console.log(this.broadcaster.ee);
  43.    
  44.         }
  45.    
  46.         public onClose = (event:CloseEvent) => {
  47.             if (event.wasClean) {
  48.                 console.log('Соединение закрыто чисто');
  49.             } else {
  50.                 console.log('Обрыв соединения'); // server unavailable
  51.             }
  52.    
  53.             this.broadcaster.ee.emit({
  54.                 data: 'blbasdasdasd'
  55.             });
  56.         }
  57.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement