{"version":3,"sources":["./src/environments/environment.ts","./src/app/rtc.service.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/user-list/user-list.component.ts","./src/app/user-list/user-list.component.html","./src/app/app.module.ts","./src/app/app-routing.module.ts","./src/app/signalr.service.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main-es2015.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","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","
\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, 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\";"],"sourceRoot":"webpack:///"}