Adds static www content to binary

This commit is contained in:
Alexey Khit
2022-08-19 16:55:50 +03:00
parent 3e1f4a0110
commit f879663f55
5 changed files with 34 additions and 23 deletions

View File

@@ -22,7 +22,6 @@ func Init() {
// default config
cfg.Mod.Listen = ":1984"
cfg.Mod.StaticDir = "www"
// load config from YAML
app.LoadConfig(&cfg)
@@ -34,10 +33,7 @@ func Init() {
basePath = cfg.Mod.BasePath
log = app.GetLogger("api")
if cfg.Mod.StaticDir != "" {
fileServer = http.FileServer(http.Dir(cfg.Mod.StaticDir))
HandleFunc("/", fileServerHandlder)
}
initStatic(cfg.Mod.StaticDir)
HandleFunc("/api/frame.mp4", frameHandler)
HandleFunc("/api/frame.raw", frameHandler)
@@ -70,17 +66,9 @@ func HandleWS(msgType string, handler WSHandler) {
}
var basePath string
var fileServer http.Handler
var log zerolog.Logger
var wsHandlers = make(map[string]WSHandler)
func fileServerHandlder(w http.ResponseWriter, r *http.Request) {
if basePath != "" {
r.URL.Path = r.URL.Path[len(basePath):]
}
fileServer.ServeHTTP(w, r)
}
func statsHandler(w http.ResponseWriter, _ *http.Request) {
v := map[string]interface{}{
"streams": streams.All(),

25
cmd/api/static.go Normal file
View File

@@ -0,0 +1,25 @@
package api
import (
"github.com/AlexxIT/go2rtc/www"
"net/http"
)
func initStatic(staticDir string) {
var root http.FileSystem
if staticDir != "" {
root = http.Dir(staticDir)
} else {
root = http.FS(www.Static)
}
fileServer := http.FileServer(root)
HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
if basePath != "" {
r.URL.Path = r.URL.Path[len(basePath):]
}
fileServer.ServeHTTP(w, r)
})
}

View File

@@ -15,8 +15,7 @@
);
const header = document.getElementById('header');
header.innerHTML = `<a href="api/stats">stats</a>` +
`<a href="webcam.html?url=webcam">webcam</a>`;
header.innerHTML = `<a href="api/stats">stats</a>`;
const links = [
'<a href="webrtc-async.html?url={name}">webrtc-async</a>',

6
www/static.go Normal file
View File

@@ -0,0 +1,6 @@
package www
import "embed"
//go:embed *.html
var Static embed.FS

View File

@@ -21,11 +21,8 @@
background: black;
}
</style>
<!-- Fix bugs for example with Safari... -->
<!-- <script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>-->
</head>
<body>
<!-- muted is important for autoplay -->
<video id="video" autoplay controls playsinline muted></video>
<script>
function init(stream) {
@@ -38,11 +35,7 @@
ws.onopen = () => {
console.debug('ws.onopen');
pc.createOffer({
// this is adds two media to SDP with recvonly direction
// offerToReceiveAudio: true,
// offerToReceiveVideo: true,
}).then(offer => {
pc.createOffer().then(offer => {
pc.setLocalDescription(offer).then(() => {
console.log(offer.sdp);
const msg = {type: 'webrtc/offer', value: pc.localDescription.sdp};