{"version":3,"sources":["webpack:///src/environments/environment.ts","webpack:///src/app/rtc.service.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.component.ts","webpack:///src/app/user-list/user-list.component.ts","webpack:///src/app/user-list/user-list.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/app-routing.module.ts","webpack:///src/app/signalr.service.ts","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["environment","production","RtcService","onSignalToSend","onSignalToSend$","asObservable","onStream","onStream$","onConnect","onConnect$","onData","onData$","users","users$","user","next","getValue","console","log","JSON","stringify","filteredUsers","filter","x","ConnectionId","stream","userId","initiator","peer","SimplePeer","on","data","stringData","id","signal","signalObject","parse","currentPeer","createPeer","message","send","providedIn","AppComponent","rtcService","signalR","subscriptions","mediaError","error","messages","Array","add","newPeer$","subscribe","currentUser","newUser","sayHello","helloAnswer$","disconnectedPeer$","disconnectedUser","signal$","signalData","signalPeer","sendSignalToUser","own","userVideo","videoPlayer","nativeElement","srcObject","load","play","userInfo","startConnection","navigator","mediaDevices","getUserMedia","video","audio","sendMessage","dataString","unsubscribe","saveUsername","onUserSelected","selector","templateUrl","styleUrls","UserListComponent","userSelected","emit","AppModule","provide","useValue","declarations","imports","providers","bootstrap","routes","AppRoutingModule","forRoot","relativeLinkResolution","exports","SignalrService","newPeer","helloAnswer","disconnectedPeer","hubConnection","withUrl","build","start","invoke","userName","bootstrapModule","err","webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module"],"mappings":"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","file":"main-es5.js","sourcesContent":["// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject, BehaviorSubject } from 'rxjs';\nimport { Instance } from 'simple-peer';\nimport { PeerData, UserInfo } from 'src/models/peerData.interface';\n\ndeclare var SimplePeer: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RtcService {\n\n private users: BehaviorSubject>;\n public users$: Observable>;\n\n private onSignalToSend = new Subject();\n public onSignalToSend$ = this.onSignalToSend.asObservable();\n\n private onStream = new Subject();\n public onStream$ = this.onStream.asObservable();\n\n private onConnect = new Subject();\n public onConnect$ = this.onConnect.asObservable();\n\n private onData = new Subject();\n public onData$ = this.onData.asObservable();\n\n public currentPeer: Instance;\n\n constructor() {\n this.users = new BehaviorSubject([]);\n this.users$ = this.users.asObservable();\n }\n\n public newUser(user: UserInfo): void {\n this.users.next([...this.users.getValue(), user]);\n console.log(\"RTC service User: \" + JSON.stringify(user));\n }\n\n public disconnectedUser(user: UserInfo): void {\n const filteredUsers = this.users.getValue().filter(x => x.ConnectionId === user.ConnectionId);\n this.users.next(filteredUsers);\n }\n\n public createPeer(stream, userId: string, initiator: boolean): Instance {\n console.log(`Create Peer. Stream:${stream} - UserId:${userId} - Initiatir:${initiator}`);\n\n const peer = new SimplePeer({ initiator, stream });\n\n peer.on('signal', data => {\n const stringData = JSON.stringify(data);\n this.onSignalToSend.next({ id: userId, data: stringData });\n });\n\n peer.on('stream', data => {\n console.log('on stream', data);\n this.onStream.next({ id: userId, data });\n });\n\n peer.on('connect', () => {\n this.onConnect.next({ id: userId, data: null });\n });\n\n peer.on('data', data => {\n this.onData.next({ id: userId, data });\n });\n\n return peer;\n }\n\n public signalPeer(userId: string, signal: string, stream: any) {\n const signalObject = JSON.parse(signal);\n if (this.currentPeer) {\n this.currentPeer.signal(signalObject);\n } else {\n this.currentPeer = this.createPeer(stream, userId, false);\n this.currentPeer.signal(signalObject);\n }\n }\n\n public sendMessage(message: string) {\n this.currentPeer.send(message);\n }\n\n}\n","
\n

SignalRTC

\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n
\n\n \n
\n {{message.message}}\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
{{userVideo}}
\n
\n
\n
\n
\n \n
\n
\n
\n","import { Component, OnDestroy, OnInit, ViewChild, ElementRef } from '@angular/core';\nimport { RtcService } from './rtc.service';\nimport { Subscription } from 'rxjs';\nimport { SignalrService } from './signalr.service';\nimport { UserInfo, PeerData, SignalInfo, ChatMessage } from 'src/models/peerData.interface';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit, OnDestroy {\n\n @ViewChild('videoPlayer') videoPlayer: ElementRef;\n\n public subscriptions = new Subscription();\n\n private stream;\n\n public currentUser: string;\n\n public dataString: string;\n\n public userVideo: string;\n\n public messages: Array;\n\n public mediaError = (): void => { console.error(`Can't get user media`); };\n\n constructor(private rtcService: RtcService, private signalR: SignalrService) { }\n\n ngOnInit() {\n this.messages = new Array();\n\n this.subscriptions.add(this.signalR.newPeer$.subscribe((user: UserInfo) => {\n console.log(`AppComponent NewPeer CurrentUser: ${this.currentUser} - ConnectionId ${user.ConnectionId}`);\n this.rtcService.newUser(user);\n this.signalR.sayHello(this.currentUser, user.ConnectionId);\n }));\n\n this.subscriptions.add(this.signalR.helloAnswer$.subscribe((user: UserInfo) => {\n this.rtcService.newUser(user);\n }));\n\n this.subscriptions.add(this.signalR.disconnectedPeer$.subscribe((user: UserInfo) => {\n this.rtcService.disconnectedUser(user);\n }));\n\n this.subscriptions.add(this.signalR.signal$.subscribe((signalData: SignalInfo) => {\n this.rtcService.signalPeer(signalData.user, signalData.signal, this.stream);\n }));\n\n this.subscriptions.add(this.rtcService.onSignalToSend$.subscribe((data: PeerData) => {\n this.signalR.sendSignalToUser(data.data, data.id);\n }));\n\n this.subscriptions.add(this.rtcService.onData$.subscribe((data: PeerData) => {\n this.messages = [...this.messages, { own: false, message: data.data }];\n console.log(`Data from user ${data.id}: ${data.data}`);\n }));\n\n this.subscriptions.add(this.rtcService.onStream$.subscribe((data: PeerData) => {\n this.userVideo = data.id;\n this.videoPlayer.nativeElement.srcObject = data.data;\n this.videoPlayer.nativeElement.load();\n this.videoPlayer.nativeElement.play();\n }));\n }\n\n\n public onUserSelected(userInfo: UserInfo) {\n const peer = this.rtcService.createPeer(this.stream, userInfo.ConnectionId, true);\n this.rtcService.currentPeer = peer;\n }\n\n public async saveUsername(): Promise {\n try {\n await this.signalR.startConnection(this.currentUser);\n this.stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true });\n } catch (error) {\n console.error(`Can't join room, error ${error}`);\n }\n }\n\n public sendMessage() {\n this.rtcService.sendMessage(this.dataString);\n this.messages = [...this.messages, { own: true, message: this.dataString }];\n this.dataString = null;\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n\n}\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RtcService } from '../rtc.service';\nimport { UserInfo } from 'src/models/peerData.interface';\n\n@Component({\n selector: 'app-user-list',\n templateUrl: './user-list.component.html',\n styleUrls: ['./user-list.component.scss']\n})\nexport class UserListComponent implements OnInit {\n\n @Output() userSelected: EventEmitter = new EventEmitter();\n\n public users$: Observable>;\n\n\n constructor(private rtcService: RtcService) { }\n\n ngOnInit() {\n this.users$ = this.rtcService.users$;\n }\n\n public userClicked(user: UserInfo) {\n this.userSelected.emit(user);\n }\n\n}\n","
    \n
  • \n {{user.Username}}\n
  • \n
\n","import { APP_BASE_HREF } from '@angular/common';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { UserListComponent } from './user-list/user-list.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n UserListComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n FormsModule\n ],\n providers: [\n { provide: APP_BASE_HREF, useValue: '/' },\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Injectable } from '@angular/core';\nimport * as signalR from \"@aspnet/signalr\";\nimport { Subject } from 'rxjs';\nimport { UserInfo, SignalInfo } from 'src/models/peerData.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SignalrService {\n\n private hubConnection: signalR.HubConnection;\n\n private newPeer = new Subject();\n public newPeer$ = this.newPeer.asObservable();\n\n private helloAnswer = new Subject();\n public helloAnswer$ = this.helloAnswer.asObservable();\n\n private disconnectedPeer = new Subject();\n public disconnectedPeer$ = this.disconnectedPeer.asObservable();\n\n private signal = new Subject();\n public signal$ = this.signal.asObservable();\n\n constructor() { }\n\n public async startConnection(currentUser: string): Promise {\n\n this.hubConnection = new signalR.HubConnectionBuilder()\n .withUrl('https://summonearth.com/webrtc')\n .build();\n\n await this.hubConnection.start();\n console.log('Connection started');\n\n this.hubConnection.on('NewUserSigned', (data) => {\n console.log(\"Signalr Service NewUserSigned: \" + data);\n this.newPeer.next(JSON.parse(data));\n });\n\n this.hubConnection.on('UserJoinedRoom', (data) => {\n console.log(\"Signalr Service UserJoinedRoom: \" + data);\n this.helloAnswer.next(JSON.parse(data));\n });\n\n this.hubConnection.on('UserDisconnected', (data) => {\n console.log(\"Signalr Service UserDisconnected: \" + data);\n this.disconnectedPeer.next(JSON.parse(data));\n });\n\n this.hubConnection.on('SendingSignal', (user, signal) => {\n console.log(`Signalr Service SendingSignal: ${user}, ${signal}`);\n this.signal.next({ user, signal });\n });\n\n this.hubConnection.invoke('NewUser', currentUser);\n }\n\n public sendSignalToUser(signal: string, user: string) {\n this.hubConnection.invoke('SendSignal', signal, user);\n }\n\n public sayHello(userName: string, user: string): void {\n console.log(`Signalr sayHello CurrentUser: ${userName} - ConnectionId ${user}`);\n this.hubConnection.invoke('UserJoinedRoom', userName, user);\n }\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"]}