You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
611 B

'use strict'
var WebSocketServer = require('ws').Server
var stream = require('./stream')
class Server extends WebSocketServer{
constructor(opts, cb) {
super(opts)
var proxied = false
this.on('newListener', function(event) {
if (!proxied && event === 'stream') {
proxied = true
this.on('connection', function(conn, req) {
this.emit('stream', stream(conn, opts), req)
})
}
})
if (cb) {
this.on('stream', cb)
}
}
}
module.exports.Server = Server
module.exports.createServer = function(opts, cb) {
return new Server(opts, cb)
}