54 lines
1.0 KiB
Go
54 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"go-desk/config"
|
|
"go-desk/router"
|
|
"log"
|
|
"net/url"
|
|
"strconv"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gorilla/websocket"
|
|
"github.com/pion/webrtc/v4"
|
|
)
|
|
|
|
func main() {
|
|
appConfig, err := config.LoadConfig()
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
fmt.Println("读取配置失败")
|
|
}
|
|
|
|
app := gin.Default()
|
|
router.Init(app)
|
|
u := url.URL{Scheme: "ws", Host: "106.12.33.188:6996", Path: "/ws"}
|
|
log.Printf("connecting to %s", u.String())
|
|
c, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
|
|
if err != nil {
|
|
log.Fatal("dial:", err)
|
|
}
|
|
defer c.Close()
|
|
|
|
// 配置使用自建 STUN 服务器
|
|
config := webrtc.Configuration{
|
|
ICEServers: []webrtc.ICEServer{
|
|
{
|
|
URLs: []string{"stun:106.12.33.188:3478"}, // 使用自建 STUN 服务器
|
|
},
|
|
},
|
|
}
|
|
|
|
// 创建 PeerConnection
|
|
peerConnection, err := webrtc.NewPeerConnection(config)
|
|
if err != nil {
|
|
log.Println(err)
|
|
return
|
|
}
|
|
defer peerConnection.Close()
|
|
|
|
t := "Hello"
|
|
c.WriteMessage(websocket.TextMessage, []byte(t))
|
|
app.Run(":" + strconv.Itoa(appConfig.Port))
|
|
}
|