-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathserver.js
29 lines (27 loc) · 1.39 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const fs = require('fs')
const path = require('path')
const http = require('http')
const express = require('express')
const serve = require('express-static')
const SocketIo = require('socket.io')
const ss = require('socket.io-stream')
const PORT = 3000
const app = express()
const server = http.Server(app)
const io = SocketIo(server)
module.exports = function (streamCb, myEmitter) {
// add socket io client libs from node_modules
app.get('/socket.io-stream.js', (req, res) => fs.createReadStream(require.resolve('socket.io-stream/socket.io-stream.js')).pipe(res))
app.get('/socket.io.js', (req, res) => fs.createReadStream(require.resolve('socket.io-client/dist/socket.io.js')).pipe(res))
app.get('/socket.io.js.map', (req, res) => fs.createReadStream(require.resolve('socket.io-client/dist/socket.io.js.map')).pipe(res))
app.get('/adapter.js', (req, res) => fs.createReadStream(require.resolve('webrtc-adapter/out/adapter.js')).pipe(res))
// static ressources
app.use(serve(path.join(__dirname, 'public')))
// configure socket.io stream interface (add callbacks for audio stream & return text)
io.on('connection', socket => {
ss(socket).on('audio', streamCb)
myEmitter.on('text', text => ss(socket).emit('news', ss.createStream(), text))
})
// start the server
server.listen(PORT, () => console.log('Server is running at http://localhost:%s - You´re good to go!', server.address().port))
}