MCPcopy Index your code
hub / github.com/Monibuca/engine / Remote

Method Remote

config/remote.go:64–116  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

62}
63
64func (cfg *Engine) Remote(ctx context.Context) (wasConnected bool, err error) {
65 tlsConf := &tls.Config{
66 InsecureSkipVerify: true,
67 NextProtos: []string{"monibuca"},
68 }
69
70 conn, err := quic.DialAddr(ctx, cfg.Server, tlsConf, &quic.Config{
71 KeepAlivePeriod: time.Second * 10,
72 EnableDatagrams: true,
73 })
74 wasConnected = err == nil
75 if stream := quic.Stream(nil); err == nil {
76 if stream, err = conn.OpenStreamSync(ctx); err == nil {
77 _, err = stream.Write(append([]byte{1}, (cfg.Secret + "\n")...))
78 if msg := []byte(nil); err == nil {
79 if msg, err = bufio.NewReader(stream).ReadSlice(0); err == nil {
80 var rMessage map[string]any
81 if err = json.Unmarshal(msg[:len(msg)-1], &rMessage); err == nil {
82 if rMessage["code"].(float64) != 0 {
83 if Global.LogLang == "zh" {
84 log.Error("控制台服务器", cfg.Server, "返回错误", rMessage["msg"])
85 } else {
86 log.Error("response from console server ", cfg.Server, " ", rMessage["msg"])
87 }
88 return false, nil
89 } else {
90 cfg.reportStream = stream
91 if Global.LogLang == "zh" {
92 log.Info("连接到控制台服务器", cfg.Server, "成功", rMessage)
93 } else {
94 log.Info("response from console server ", cfg.Server, " success ", rMessage)
95 }
96 if v, ok := rMessage["enableReport"]; ok {
97 cfg.enableReport = v.(bool)
98 }
99 if v, ok := rMessage["instanceId"]; ok {
100 cfg.instanceId = v.(string)
101 }
102 }
103 }
104 }
105 }
106 }
107 }
108
109 for err == nil {
110 var s quic.Stream
111 if s, err = conn.AcceptStream(ctx); err == nil {
112 go cfg.ReceiveRequest(s, conn)
113 }
114 }
115 return wasConnected, err
116}
117
118func (cfg *Engine) ReceiveRequest(s quic.Stream, conn quic.Connection) error {
119 defer s.Close()

Callers 1

WtRemoteMethod · 0.95

Calls 6

ReceiveRequestMethod · 0.95
ErrorFunction · 0.92
InfoFunction · 0.92
WriteMethod · 0.65
UnmarshalMethod · 0.65
NewReaderMethod · 0.45

Tested by

no test coverage detected