@@ -10,32 +10,38 @@ import (
1010)
1111
1212type WebSocketServerConfig struct {
13- Host string
14- Port int
15- CertFile string
16- KeyFile string
17- HTMLRoot string
18- WebSocketPath string
13+ Host string
14+ Port int
15+ CertFile string
16+ KeyFile string
17+ HTMLRoot string
18+ WebSocketPath string
19+ TurnServerPath string
1920}
2021
2122func DefaultConfig () WebSocketServerConfig {
2223 return WebSocketServerConfig {
23- Host : "0.0.0.0" ,
24- Port : 8086 ,
25- HTMLRoot : "html" ,
26- WebSocketPath : "/ws" ,
24+ Host : "0.0.0.0" ,
25+ Port : 8086 ,
26+ HTMLRoot : "html" ,
27+ WebSocketPath : "/ws" ,
28+ TurnServerPath : "/turnServer" ,
2729 }
2830}
2931
3032type WebSocketServer struct {
31- handleWebSocket func (ws * transport.WebSocketTransport , request * http.Request )
33+ handleWebSocket func (ws * transport.WebSocketTransport , request * http.Request )
34+ handleTurnServer func (writer http.ResponseWriter , request * http.Request )
3235 // Websocket upgrader
3336 upgrader websocket.Upgrader
3437}
3538
36- func NewWebSocketServer (handler func (ws * transport.WebSocketTransport , request * http.Request )) * WebSocketServer {
39+ func NewWebSocketServer (
40+ wsHandler func (ws * transport.WebSocketTransport , request * http.Request ),
41+ turnServerHandler func (writer http.ResponseWriter , request * http.Request )) * WebSocketServer {
3742 var server = & WebSocketServer {
38- handleWebSocket : handler ,
43+ handleWebSocket : wsHandler ,
44+ handleTurnServer : turnServerHandler ,
3945 }
4046 server .upgrader = websocket.Upgrader {
4147 CheckOrigin : func (r * http.Request ) bool {
@@ -57,10 +63,15 @@ func (server *WebSocketServer) handleWebSocketRequest(writer http.ResponseWriter
5763 wsTransport .ReadMessage ()
5864}
5965
66+ func (server * WebSocketServer ) handleTurnServerRequest (writer http.ResponseWriter , request * http.Request ) {
67+ server .handleTurnServer (writer , request )
68+ }
69+
6070// Bind .
6171func (server * WebSocketServer ) Bind (cfg WebSocketServerConfig ) {
6272 // Websocket handle func
6373 http .HandleFunc (cfg .WebSocketPath , server .handleWebSocketRequest )
74+ http .HandleFunc (cfg .TurnServerPath , server .handleTurnServerRequest )
6475 http .Handle ("/" , http .FileServer (http .Dir (cfg .HTMLRoot )))
6576 logger .Infof ("WebSocketServer listening on: %s:%d" , cfg .Host , cfg .Port )
6677 // http.ListenAndServe(cfg.Host+":"+strconv.Itoa(cfg.Port), nil)
0 commit comments