Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/talentlessguy/golang-reload-browser
Browser reload with websockets in Go
https://github.com/talentlessguy/golang-reload-browser
browser-reload go golang
Last synced: 4 months ago
JSON representation
Browser reload with websockets in Go
- Host: GitHub
- URL: https://github.com/talentlessguy/golang-reload-browser
- Owner: talentlessguy
- License: mit
- Fork: true (markvincze/golang-reload-browser)
- Created: 2019-08-25T18:47:13.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-12-14T20:54:10.000Z (about 5 years ago)
- Last Synced: 2024-04-14T10:45:18.182Z (9 months ago)
- Topics: browser-reload, go, golang
- Language: Go
- Homepage:
- Size: 48.8 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Golang page reloader
__I forked the repository to add go module and custom port.__
This is a small sample application implemented in Golang which can programmatically refresh a tab in a browser.
It is accompanying a blog post I've written about the subject with all the details: .It hosts a small WebSocket service with a single `reload` endpoint, to which we can connect from the browser, and send a message every time we want it to be reloaded.
## Install
```sh
go get -u -v github.com/talentlessguy/golang-reload-browser
```Open a browser and press "Enter" in console.
## Example
Go code:
```go
package mainimport (
"bufio"
"log"
"os"
rl "talentlessguy/golang-reload-browser"
)func main() {
log.Println("Starting reload server.")rl.StartReloadServer(":3000")
log.Println("Reload server started.")
log.Println("Press Enter to reload the browser!")
for {
reader := bufio.NewReader(os.Stdin)
reader.ReadString('\n')log.Println("Reloading browser.")
rl.SendReload()
}
}
```HTML page:
```html
Reload test page
const tryConnectToReload = address => {
const conn = new WebSocket(address)conn.onclose = () => {
setTimeout(() => {
tryConnectToReload(address)
}, 2000)
}conn.onmessage = evt => location.reload()
}
try {
if (window.WebSocket) {
// The reload endpoint is hosted on a statically defined port.
tryConnectToReload('ws://localhost:3000/reload')
} else {
console.log( 'Your browser does not support WebSockets :(')
}
} catch (e) {
console.error(`Exception during connecting to Reload: ${e}`)
}
```
Then run go file:
```sh
go run main.go
```