-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnegotiator-stdin.go
68 lines (56 loc) · 1.28 KB
/
negotiator-stdin.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package main
import (
"bufio"
"fmt"
"io"
"os"
"strings"
"github.com/pion/webrtc/v3"
)
func MustReadStdin() string {
r := bufio.NewReader(os.Stdin)
var in string
for {
var err error
in, err = r.ReadString('\n')
if err != io.EOF {
if err != nil {
panic(err)
}
}
in = strings.TrimSpace(in)
if len(in) > 0 {
break
}
}
fmt.Println("")
return in
}
type StdinNegotiator struct {}
func (w *StdinNegotiator) RecvOffer(id string) (*webrtc.SessionDescription, error) {
offer := webrtc.SessionDescription{}
fmt.Println("Paste Offer Below ----------")
SDPDecode(MustReadStdin(), &offer)
return &offer, nil
}
func (w *StdinNegotiator) SendOffer(id string, sdp *webrtc.SessionDescription) error {
payload := SDPEncode(sdp)
fmt.Println("Offer----------")
fmt.Println(payload)
return nil
}
func (w *StdinNegotiator) RecvAnswer(id string) (*webrtc.SessionDescription, error) {
answer := webrtc.SessionDescription{}
fmt.Println("Paste Answer Below ----------")
SDPDecode(MustReadStdin(), &answer)
return &answer, nil
}
func (w *StdinNegotiator) SendAnswer(id string, sdp *webrtc.SessionDescription) error {
payload := SDPEncode(sdp)
fmt.Println("Answer----------")
fmt.Println(payload)
return nil
}
func (w *StdinNegotiator) Complete(id string) error {
return nil
}