mirror of
https://github.com/AynaLivePlayer/AynaLivePlayer.git
synced 2025-12-06 18:32:50 +08:00
update wshub
This commit is contained in:
@@ -34,7 +34,7 @@ func (c *wsClient) start() {
|
||||
c.Close <- 1
|
||||
return
|
||||
}
|
||||
if msgType == websocket.TextMessage {
|
||||
if msgType != websocket.TextMessage {
|
||||
return
|
||||
}
|
||||
var data EventDataReceived
|
||||
@@ -53,23 +53,25 @@ func (c *wsClient) start() {
|
||||
}
|
||||
|
||||
type wsServer struct {
|
||||
Running bool
|
||||
Server *http.Server
|
||||
clients map[*wsClient]bool
|
||||
mux *http.ServeMux
|
||||
lock sync.RWMutex
|
||||
port *int
|
||||
log logger.ILogger
|
||||
Running bool
|
||||
Server *http.Server
|
||||
clients map[*wsClient]bool
|
||||
mux *http.ServeMux
|
||||
lock sync.RWMutex
|
||||
port *int
|
||||
localhostOnly *bool
|
||||
log logger.ILogger
|
||||
}
|
||||
|
||||
func newWsServer(port *int) *wsServer {
|
||||
func newWsServer(port *int, localhostOnly *bool) *wsServer {
|
||||
mux := http.NewServeMux()
|
||||
s := &wsServer{
|
||||
Running: false,
|
||||
clients: make(map[*wsClient]bool),
|
||||
mux: mux,
|
||||
port: port,
|
||||
log: global.Logger.WithPrefix("plugin.wshub.server"),
|
||||
Running: false,
|
||||
clients: make(map[*wsClient]bool),
|
||||
mux: mux,
|
||||
port: port,
|
||||
localhostOnly: localhostOnly,
|
||||
log: global.Logger.WithPrefix("plugin.wshub.server"),
|
||||
}
|
||||
mux.HandleFunc("/wsinfo", s.handleWsInfo)
|
||||
return s
|
||||
@@ -132,8 +134,14 @@ func (s *wsServer) Start() {
|
||||
s.log.Debug("WebInfoServer starting...")
|
||||
s.Running = true
|
||||
go func() {
|
||||
var addr string
|
||||
if *s.localhostOnly {
|
||||
addr = fmt.Sprintf("localhost:%d", *s.port)
|
||||
} else {
|
||||
addr = fmt.Sprintf("0.0.0.0:%d", *s.port)
|
||||
}
|
||||
s.Server = &http.Server{
|
||||
Addr: fmt.Sprintf("localhost:%d", *s.port),
|
||||
Addr: addr,
|
||||
Handler: s.mux,
|
||||
}
|
||||
err := s.Server.ListenAndServe()
|
||||
@@ -161,5 +169,8 @@ func (s *wsServer) Stop() error {
|
||||
}
|
||||
|
||||
func (s *wsServer) getWsUrl() string {
|
||||
return fmt.Sprintf("ws://localhost:%d/wsinfo", *s.port)
|
||||
if *s.localhostOnly {
|
||||
return fmt.Sprintf("ws://localhost:%d/wsinfo", *s.port)
|
||||
}
|
||||
return fmt.Sprintf("ws://0.0.0.0:%d/wsinfo", *s.port)
|
||||
}
|
||||
|
||||
@@ -19,24 +19,26 @@ import (
|
||||
|
||||
type WsHub struct {
|
||||
config.BaseConfig
|
||||
Enabled bool
|
||||
Port int
|
||||
panel fyne.CanvasObject
|
||||
server *wsServer
|
||||
log logger.ILogger
|
||||
Enabled bool
|
||||
Port int
|
||||
LocalHostOnly bool
|
||||
panel fyne.CanvasObject
|
||||
server *wsServer
|
||||
log logger.ILogger
|
||||
}
|
||||
|
||||
func NewWsHub() *WsHub {
|
||||
return &WsHub{
|
||||
Enabled: false,
|
||||
Port: 29629,
|
||||
log: global.Logger.WithPrefix("plugin.wshub"),
|
||||
Enabled: false,
|
||||
Port: 29629,
|
||||
LocalHostOnly: true,
|
||||
log: global.Logger.WithPrefix("plugin.wshub"),
|
||||
}
|
||||
}
|
||||
|
||||
func (w *WsHub) Enable() error {
|
||||
config.LoadConfig(w)
|
||||
w.server = newWsServer(&w.Port)
|
||||
w.server = newWsServer(&w.Port, &w.LocalHostOnly)
|
||||
gui.AddConfigLayout(w)
|
||||
w.registerEvents()
|
||||
w.log.Info("webinfo loaded")
|
||||
@@ -89,6 +91,9 @@ func (w *WsHub) CreatePanel() fyne.CanvasObject {
|
||||
autoStart := container.NewHBox(
|
||||
widget.NewLabel(i18n.T("plugin.wshub.autostart")),
|
||||
component.NewCheckOneWayBinding("", &w.Enabled, w.Enabled))
|
||||
localHostOnly := container.NewHBox(
|
||||
widget.NewLabel(i18n.T("plugin.wshub.local_host_only")),
|
||||
component.NewCheckOneWayBinding("", &w.LocalHostOnly, w.LocalHostOnly))
|
||||
freshStatusText()
|
||||
serverPort := container.NewBorder(nil, nil,
|
||||
widget.NewLabel(i18n.T("plugin.wshub.port")), nil,
|
||||
@@ -152,7 +157,7 @@ func (w *WsHub) CreatePanel() fyne.CanvasObject {
|
||||
widget.NewLabel(i18n.T("plugin.wshub.server_control")),
|
||||
startBtn, stopBtn, restartBtn,
|
||||
)
|
||||
w.panel = container.NewVBox(serverStatus, autoStart, serverPreview, serverPort, ctrlBtns)
|
||||
w.panel = container.NewVBox(serverStatus, autoStart, localHostOnly, serverPreview, serverPort, ctrlBtns)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user