Lrserver
LiveReload server for Go [golang]
Install / Use
/learn @jaschaephraim/LrserverREADME
lrserver LiveReload server for Go
Golang package that implements a simple LiveReload server as described in the LiveReload protocol.
Using the recommended default port 35729:
-
http://localhost:35729/livereload.jsserves the LiveReload client JavaScript (https://github.com/livereload/livereload-js) -
ws://localhost:35729/livereloadcommunicates with the client via web socket.
File watching must be implemented by your own application, and reload/alert requests sent programmatically.
Multiple servers can be instantiated, and each can support multiple connections.
Full Documentation: 
Basic Usage
Get Package
go get github.com/jaschaephraim/lrserver
Import Package
import "github.com/jaschaephraim/lrserver"
Instantiate Server
lr := lrserver.New(lrserver.DefaultName, lrserver.DefaultPort)
Start Server
go func() {
err := lr.ListenAndServe()
if err != nil {
// Handle error
}
}()
Send Messages to the Browser
lr.Reload("file")
lr.Alert("message")
Example
import (
"log"
"net/http"
"github.com/fsnotify/fsnotify"
"github.com/jaschaephraim/lrserver"
)
// html includes the client JavaScript
const html = `<!doctype html>
<html>
<head>
<title>Example</title>
</head>
<body>
<script src="http://localhost:35729/livereload.js"></script>
</body>
</html>`
func Example() {
// Create file watcher
watcher, err := fsnotify.NewWatcher()
if err != nil {
log.Fatalln(err)
}
defer watcher.Close()
// Add dir to watcher
err = watcher.Add("/path/to/watched/dir")
if err != nil {
log.Fatalln(err)
}
// Create and start LiveReload server
lr := lrserver.New(lrserver.DefaultName, lrserver.DefaultPort)
go lr.ListenAndServe()
// Start goroutine that requests reload upon watcher event
go func() {
for {
select {
case event := <-watcher.Events:
lr.Reload(event.Name)
case err := <-watcher.Errors:
log.Println(err)
}
}
}()
// Start serving html
http.HandleFunc("/", func(rw http.ResponseWriter, req *http.Request) {
rw.Write([]byte(html))
})
http.ListenAndServe(":3000", nil)
}
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR
