implement signal offer.

This commit is contained in:
Miroslav Šedivý
2021-11-25 00:07:17 +01:00
parent a260ce6a60
commit 44e74e3088
6 changed files with 27 additions and 4 deletions

View File

@ -56,8 +56,13 @@ func (h *MessageHandlerCtx) Message(session types.Session, data types.WebSocketM
})
case event.SIGNAL_RESTART:
err = h.signalRestart(session)
case event.SIGNAL_OFFER:
payload := &message.SignalDescription{}
err = utils.Unmarshal(payload, data.Payload, func() error {
return h.signalOffer(session, payload)
})
case event.SIGNAL_ANSWER:
payload := &message.SignalAnswer{}
payload := &message.SignalDescription{}
err = utils.Unmarshal(payload, data.Payload, func() error {
return h.signalAnswer(session, payload)
})

View File

@ -48,14 +48,23 @@ func (h *MessageHandlerCtx) signalRestart(session types.Session) error {
session.Send(
event.SIGNAL_RESTART,
message.SignalAnswer{
message.SignalDescription{
SDP: offer.SDP,
})
return nil
}
func (h *MessageHandlerCtx) signalAnswer(session types.Session, payload *message.SignalAnswer) error {
func (h *MessageHandlerCtx) signalOffer(session types.Session, payload *message.SignalDescription) error {
peer := session.GetWebRTCPeer()
if peer == nil {
return errors.New("webRTC peer does not exist")
}
return peer.SignalOffer(payload.SDP)
}
func (h *MessageHandlerCtx) signalAnswer(session types.Session, payload *message.SignalDescription) error {
peer := session.GetWebRTCPeer()
if peer == nil {
return errors.New("webRTC peer does not exist")