@@ -15,42 +15,10 @@ var cors = require('cors')
1515app . use ( cors ( ) ) ;
1616const axios = require ( 'axios' ) ;
1717
18- // SSE for alerts
19- var SSE = require ( 'express-sse' ) ;
20- var sse = new SSE ( [ 'SignalWire SSE started' ] ) ;
21- app . get ( '/stream' , ( req , res , next ) => {
22- res . flush = ( ) => { } ;
23- next ( ) ;
24- } , sse . init ) ;
25-
26- // SignalWire real time events
27- const createClient = require ( '@signalwire/realtime-api' ) . createClient ;
28- createClient ( {
29- project : process . env . SIGNALWIRE_PROJECT_KEY ,
30- token : process . env . SIGNALWIRE_TOKEN
31- } ) . then ( async ( client ) => {
32- client . video . on ( 'room.started' , async ( roomSession ) => {
33- console . log ( "Room started" , await roomSession . getMembers ( ) )
34- await sse . send ( "Room started" ) ;
35-
36- roomSession . on ( 'member.joined' , async ( member ) => {
37- console . log ( 'Joined' , member . id , member . name )
38- } )
39-
40- roomSession . on ( 'member.left' , async ( member ) => {
41- console . log ( 'Left' , member . id , member . name )
42- } )
43-
44- await roomSession . subscribe ( )
45- } ) ;
46-
47- client . connect ( )
48- } ) ;
49-
50-
51-
18+ // Utility methods
5219async function apiRequest ( path , data = { } , method = 'post' ) {
5320 var url = `https://${ process . env . SIGNALWIRE_SPACE } ${ path } `
21+ console . log ( url )
5422 const res = await axios ( {
5523 method,
5624 url,
@@ -115,6 +83,46 @@ async function getActiveRooms() {
11583 return output ;
11684}
11785
86+ // SSE for alerts
87+ var SSE = require ( 'express-sse' ) ;
88+ var sse = new SSE ( [ 'SignalWire SSE started' ] ) ;
89+ app . get ( '/stream' , ( req , res , next ) => {
90+ res . flush = ( ) => { } ;
91+ next ( ) ;
92+ } , sse . init ) ;
93+
94+ async function sendEvent ( payload ) {
95+ console . log ( payload ) ;
96+ await sse . send ( payload ) ;
97+ }
98+
99+ // SignalWire real time events
100+ const createClient = require ( '@signalwire/realtime-api' ) . createClient ;
101+ createClient ( {
102+ project : process . env . SIGNALWIRE_PROJECT_KEY ,
103+ token : process . env . SIGNALWIRE_TOKEN
104+ } ) . then ( async ( client ) => {
105+ client . video . on ( 'room.started' , async ( roomSession ) => {
106+ sendEvent ( await getActiveRooms ( ) ) ;
107+
108+ roomSession . on ( 'member.joined' , async ( member ) => {
109+ sendEvent ( await getActiveRooms ( ) ) ;
110+ } )
111+
112+ roomSession . on ( 'member.left' , async ( member ) => {
113+ sendEvent ( await getActiveRooms ( ) ) ;
114+ } )
115+
116+ await roomSession . subscribe ( )
117+ } ) ;
118+
119+ client . video . on ( 'room.ended' , async ( roomSession ) => {
120+ sendEvent ( await getActiveRooms ( ) ) ;
121+ } ) ;
122+
123+ client . connect ( )
124+ } ) ;
125+
118126app . get ( '/' , async ( req , res ) => {
119127 var room = req . query . room || `room${ getRandomInt ( 1000 ) } ` ;
120128 var user = req . query . user || `user${ getRandomInt ( 1000 ) } ` ;
@@ -124,7 +132,7 @@ app.get('/', async (req, res) => {
124132
125133app . get ( '/dashboard' , async ( req , res ) => {
126134 var rooms = await getActiveRooms ( ) ;
127- console . log ( rooms ) ;
135+ console . log ( rooms )
128136 res . render ( 'dashboard' , { rooms } )
129137} ) ;
130138
0 commit comments