Skip to content
Prev Previous commit
Next Next commit
Unify sending "nickChanged" data channel messages
Instead of sending "nickChanged" data channel messages from different
places now an internal "nickChanged" event with the name is emitted, and
its handler takes care of sending the data channel message as needed.

This also fixes trying to send data channel messages to receiving only
peers when the nick is changed and the HPB is used.

Signed-off-by: Daniel Calviño Sánchez <[email protected]>
  • Loading branch information
danxuliu authored and backportbot[bot] committed Dec 9, 2020
commit d874ccac73a4d01597831df7f56a356c14f6da4d
2 changes: 1 addition & 1 deletion src/utils/webrtc/models/LocalCallParticipantModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ LocalCallParticipantModel.prototype = {

this.set('guestName', guestName)

this._webRtc.sendDirectlyToAll('status', 'nickChanged', guestName)
this._webRtc.webrtc.emit('nickChanged', guestName)
},

_handleForcedMute: function() {
Expand Down
26 changes: 16 additions & 10 deletions src/utils/webrtc/webrtc.js
Original file line number Diff line number Diff line change
Expand Up @@ -524,16 +524,7 @@ export default function initWebRTC(signaling, _callParticipantCollection, _local

stopSendingNick()
ownPeer.nickInterval = setInterval(function() {
let payload
if (signaling.settings.userId === null) {
payload = store.getters.getDisplayName()
} else {
payload = {
'name': store.getters.getDisplayName(),
'userid': signaling.settings.userId,
}
}
ownPeer.sendDirectly('status', 'nickChanged', payload)
webrtc.webrtc.emit('nickChanged', store.getters.getDisplayName())
}, 1000)
}

Expand Down Expand Up @@ -1010,6 +1001,21 @@ export default function initWebRTC(signaling, _callParticipantCollection, _local
sendDataChannelToAll('status', 'videoOff')
})

// Send the nick changed event via data channel
webrtc.on('nickChanged', function(name) {
let payload
if (signaling.settings.userId === null) {
payload = name
} else {
payload = {
'name': name,
'userid': signaling.settings.userId,
}
}

sendDataChannelToAll('status', 'nickChanged', payload)
})

// Local screen added.
webrtc.on('localScreenAdded', function(/* video */) {
const currentSessionId = signaling.getSessionId()
Expand Down