mirror of
https://github.com/DeBrosOfficial/orama.git
synced 2026-03-17 08:36:57 +00:00
feat: add sourceUserID to publishedTrack and update TrackAddedData and TrackRemovedData structures
This commit is contained in:
parent
25495448ed
commit
80e26f33fb
@ -33,6 +33,7 @@ var (
|
|||||||
// publishedTrack holds a local track being forwarded from a remote source.
|
// publishedTrack holds a local track being forwarded from a remote source.
|
||||||
type publishedTrack struct {
|
type publishedTrack struct {
|
||||||
sourcePeerID string
|
sourcePeerID string
|
||||||
|
sourceUserID string
|
||||||
localTrack *webrtc.TrackLocalStaticRTP
|
localTrack *webrtc.TrackLocalStaticRTP
|
||||||
remoteTrackSSRC uint32
|
remoteTrackSSRC uint32
|
||||||
kind string
|
kind string
|
||||||
@ -294,6 +295,7 @@ func (r *Room) RemovePeer(peerID string) {
|
|||||||
for _, trackID := range removed {
|
for _, trackID := range removed {
|
||||||
r.broadcastMessage(peerID, NewServerMessage(MessageTypeTrackRemoved, &TrackRemovedData{
|
r.broadcastMessage(peerID, NewServerMessage(MessageTypeTrackRemoved, &TrackRemovedData{
|
||||||
PeerID: peerID,
|
PeerID: peerID,
|
||||||
|
UserID: peer.UserID,
|
||||||
TrackID: trackID,
|
TrackID: trackID,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
@ -348,10 +350,19 @@ func (r *Room) BroadcastTrack(sourcePeerID string, track *webrtc.TrackRemote) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Look up source peer's UserID
|
||||||
|
r.peersMu.RLock()
|
||||||
|
var sourceUserID string
|
||||||
|
if sourcePeer, ok := r.peers[sourcePeerID]; ok {
|
||||||
|
sourceUserID = sourcePeer.UserID
|
||||||
|
}
|
||||||
|
r.peersMu.RUnlock()
|
||||||
|
|
||||||
// Store for future joiners
|
// Store for future joiners
|
||||||
r.publishedTracksMu.Lock()
|
r.publishedTracksMu.Lock()
|
||||||
r.publishedTracks[localTrack.ID()] = &publishedTrack{
|
r.publishedTracks[localTrack.ID()] = &publishedTrack{
|
||||||
sourcePeerID: sourcePeerID,
|
sourcePeerID: sourcePeerID,
|
||||||
|
sourceUserID: sourceUserID,
|
||||||
localTrack: localTrack,
|
localTrack: localTrack,
|
||||||
remoteTrackSSRC: uint32(track.SSRC()),
|
remoteTrackSSRC: uint32(track.SSRC()),
|
||||||
kind: track.Kind().String(),
|
kind: track.Kind().String(),
|
||||||
@ -385,6 +396,7 @@ func (r *Room) BroadcastTrack(sourcePeerID string, track *webrtc.TrackRemote) {
|
|||||||
}
|
}
|
||||||
peer.SendMessage(NewServerMessage(MessageTypeTrackAdded, &TrackAddedData{
|
peer.SendMessage(NewServerMessage(MessageTypeTrackAdded, &TrackAddedData{
|
||||||
PeerID: sourcePeerID,
|
PeerID: sourcePeerID,
|
||||||
|
UserID: sourceUserID,
|
||||||
TrackID: localTrack.ID(),
|
TrackID: localTrack.ID(),
|
||||||
StreamID: localTrack.StreamID(),
|
StreamID: localTrack.StreamID(),
|
||||||
Kind: track.Kind().String(),
|
Kind: track.Kind().String(),
|
||||||
@ -417,6 +429,7 @@ func (r *Room) SendExistingTracksTo(peer *Peer) {
|
|||||||
}
|
}
|
||||||
peer.SendMessage(NewServerMessage(MessageTypeTrackAdded, &TrackAddedData{
|
peer.SendMessage(NewServerMessage(MessageTypeTrackAdded, &TrackAddedData{
|
||||||
PeerID: pt.sourcePeerID,
|
PeerID: pt.sourcePeerID,
|
||||||
|
UserID: pt.sourceUserID,
|
||||||
TrackID: pt.localTrack.ID(),
|
TrackID: pt.localTrack.ID(),
|
||||||
StreamID: pt.localTrack.StreamID(),
|
StreamID: pt.localTrack.StreamID(),
|
||||||
Kind: pt.kind,
|
Kind: pt.kind,
|
||||||
|
|||||||
@ -101,6 +101,7 @@ type ParticipantLeftData struct {
|
|||||||
// TrackAddedData is sent when a new track is available
|
// TrackAddedData is sent when a new track is available
|
||||||
type TrackAddedData struct {
|
type TrackAddedData struct {
|
||||||
PeerID string `json:"peerId"`
|
PeerID string `json:"peerId"`
|
||||||
|
UserID string `json:"userId"`
|
||||||
TrackID string `json:"trackId"`
|
TrackID string `json:"trackId"`
|
||||||
StreamID string `json:"streamId"`
|
StreamID string `json:"streamId"`
|
||||||
Kind string `json:"kind"` // "audio" or "video"
|
Kind string `json:"kind"` // "audio" or "video"
|
||||||
@ -108,9 +109,10 @@ type TrackAddedData struct {
|
|||||||
|
|
||||||
// TrackRemovedData is sent when a track is removed
|
// TrackRemovedData is sent when a track is removed
|
||||||
type TrackRemovedData struct {
|
type TrackRemovedData struct {
|
||||||
PeerID string `json:"peerId"`
|
PeerID string `json:"peerId"`
|
||||||
TrackID string `json:"trackId"`
|
UserID string `json:"userId"`
|
||||||
Kind string `json:"kind"`
|
TrackID string `json:"trackId"`
|
||||||
|
Kind string `json:"kind"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// TURNCredentialsData provides TURN server credentials
|
// TURNCredentialsData provides TURN server credentials
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user