|
@@ -891,13 +891,13 @@ Peer.prototype._startSocket = function() {
|
|
this._socket.on('error', function(error) {
|
|
this._socket.on('error', function(error) {
|
|
util.log(error);
|
|
util.log(error);
|
|
self.emit('error', error);
|
|
self.emit('error', error);
|
|
- self.emit('close');
|
|
|
|
|
|
+ self.destroy();
|
|
});
|
|
});
|
|
this._socket.on('close', function() {
|
|
this._socket.on('close', function() {
|
|
var msg = 'Underlying socket has closed';
|
|
var msg = 'Underlying socket has closed';
|
|
util.log('error', msg);
|
|
util.log('error', msg);
|
|
self.emit('error', msg);
|
|
self.emit('error', msg);
|
|
- self.emit('close');
|
|
|
|
|
|
+ self.destroy();
|
|
});
|
|
});
|
|
this._socket.start();
|
|
this._socket.start();
|
|
}
|
|
}
|
|
@@ -922,7 +922,6 @@ Peer.prototype._handleServerJSONMessage = function(message) {
|
|
case 'ID-TAKEN':
|
|
case 'ID-TAKEN':
|
|
this.emit('error', 'ID `'+this.id+'` is taken');
|
|
this.emit('error', 'ID `'+this.id+'` is taken');
|
|
this.destroy();
|
|
this.destroy();
|
|
- this.emit('close');
|
|
|
|
break;
|
|
break;
|
|
case 'OFFER':
|
|
case 'OFFER':
|
|
var options = {
|
|
var options = {
|
|
@@ -960,7 +959,6 @@ Peer.prototype._handleServerJSONMessage = function(message) {
|
|
case 'INVALID-KEY':
|
|
case 'INVALID-KEY':
|
|
this.emit('error', 'API KEY "' + this._key + '" is invalid');
|
|
this.emit('error', 'API KEY "' + this._key + '" is invalid');
|
|
this.destroy();
|
|
this.destroy();
|
|
- this.emit('close');
|
|
|
|
break;
|
|
break;
|
|
case 'PORT':
|
|
case 'PORT':
|
|
//if (util.browserisms === 'Firefox') {
|
|
//if (util.browserisms === 'Firefox') {
|
|
@@ -991,6 +989,7 @@ Peer.prototype._cleanup = function() {
|
|
util.setZeroTimeout(function(){
|
|
util.setZeroTimeout(function(){
|
|
self._socket.close();
|
|
self._socket.close();
|
|
});
|
|
});
|
|
|
|
+ this.emit('close');
|
|
};
|
|
};
|
|
|
|
|
|
/** Listeners for DataConnection events. */
|
|
/** Listeners for DataConnection events. */
|
|
@@ -1183,6 +1182,9 @@ DataConnection.prototype._configureDataChannel = function() {
|
|
this._dc.onmessage = function(e) {
|
|
this._dc.onmessage = function(e) {
|
|
self._handleDataMessage(e);
|
|
self._handleDataMessage(e);
|
|
};
|
|
};
|
|
|
|
+ this._dc.onclose = function(e) {
|
|
|
|
+ self.emit('close');
|
|
|
|
+ };
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|