mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-18 08:13:31 +02:00
Try to read frames immediately instead of waiting for a readable event. We may already have received it before.
This commit is contained in:
@@ -42,6 +42,7 @@ module.exports = syrup.serial()
|
||||
this.failCounter = new FailCounter(3, 10000)
|
||||
this.failCounter.on('exceedLimit', this._failLimitExceeded.bind(this))
|
||||
this.failed = false
|
||||
this.readableListener = this._readableListener.bind(this)
|
||||
}
|
||||
|
||||
util.inherits(FrameProducer, EventEmitter)
|
||||
@@ -298,12 +299,15 @@ module.exports = syrup.serial()
|
||||
return Promise.resolve(true)
|
||||
}
|
||||
|
||||
socket.stream.removeListener('readable', this.readableListener)
|
||||
|
||||
var endListener
|
||||
return new Promise(function(resolve/*, reject*/) {
|
||||
socket.on('end', endListener = function() {
|
||||
resolve(true)
|
||||
})
|
||||
|
||||
socket.stream.resume()
|
||||
socket.end()
|
||||
})
|
||||
.finally(function() {
|
||||
@@ -373,11 +377,11 @@ module.exports = syrup.serial()
|
||||
|
||||
FrameProducer.prototype._readFrames = function(socket) {
|
||||
this.needsReadable = true
|
||||
socket.on('readable', this.readableListener)
|
||||
|
||||
socket.on('readable', function() {
|
||||
this.readable = true
|
||||
this._maybeEmitReadable()
|
||||
}.bind(this))
|
||||
// We may already have data pending. Let the user know they should
|
||||
// at least attempt to read frames now.
|
||||
this.readableListener()
|
||||
}
|
||||
|
||||
FrameProducer.prototype._maybeEmitReadable = function() {
|
||||
@@ -387,6 +391,11 @@ module.exports = syrup.serial()
|
||||
}
|
||||
}
|
||||
|
||||
FrameProducer.prototype._readableListener = function() {
|
||||
this.readable = true
|
||||
this._maybeEmitReadable()
|
||||
}
|
||||
|
||||
function createServer() {
|
||||
log.info('Starting WebSocket server on port %d', screenOptions.publicPort)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user