mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
webrtc connect with selected video.
This commit is contained in:
@ -48,7 +48,10 @@ func (h *MessageHandlerCtx) Message(session types.Session, raw []byte) bool {
|
||||
switch header.Event {
|
||||
// Signal Events
|
||||
case event.SIGNAL_REQUEST:
|
||||
err = h.signalRequest(session)
|
||||
payload := &message.SignalVideo{}
|
||||
err = utils.Unmarshal(payload, raw, func() error {
|
||||
return h.signalRequest(session, payload)
|
||||
})
|
||||
case event.SIGNAL_ANSWER:
|
||||
payload := &message.SignalAnswer{}
|
||||
err = utils.Unmarshal(payload, raw, func() error {
|
||||
|
@ -6,16 +6,19 @@ import (
|
||||
"demodesk/neko/internal/types/message"
|
||||
)
|
||||
|
||||
func (h *MessageHandlerCtx) signalRequest(session types.Session) error {
|
||||
func (h *MessageHandlerCtx) signalRequest(session types.Session, payload *message.SignalVideo) error {
|
||||
if !session.Profile().CanWatch {
|
||||
h.logger.Debug().Str("session_id", session.ID()).Msg("not allowed to watch")
|
||||
return nil
|
||||
}
|
||||
|
||||
videos := h.capture.VideoIDs()
|
||||
defaultVideo := videos[0]
|
||||
// use default first video, if not provided
|
||||
if payload.Video == "" {
|
||||
videos := h.capture.VideoIDs()
|
||||
payload.Video = videos[0]
|
||||
}
|
||||
|
||||
offer, err := h.webrtc.CreatePeer(session, defaultVideo)
|
||||
offer, err := h.webrtc.CreatePeer(session, payload.Video)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -25,8 +28,7 @@ func (h *MessageHandlerCtx) signalRequest(session types.Session) error {
|
||||
Event: event.SIGNAL_PROVIDE,
|
||||
SDP: offer.SDP,
|
||||
ICEServers: h.webrtc.ICEServers(),
|
||||
Videos: videos,
|
||||
Video: defaultVideo,
|
||||
Video: payload.Video,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -45,6 +45,9 @@ func (h *MessageHandlerCtx) systemInit(session types.Session) error {
|
||||
},
|
||||
Sessions: sessions,
|
||||
ImplicitHosting: h.sessions.ImplicitHosting(),
|
||||
WebRTC: message.SystemWebRTC{
|
||||
Videos: h.capture.VideoIDs(),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user