mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
implement signal offer.
This commit is contained in:
@ -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)
|
||||
})
|
||||
|
@ -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")
|
||||
|
Reference in New Issue
Block a user