Hi. Golang newbie here so my apologies if this is obvious :(
I've copied and pasted a websockets example but it is not working.
When I open the web page I get: Firefox can't establish a connection to the server at ws://localhost:8080/echo.
The code I copied is listed below.
Any help would be much appreciated.
Go code
======
package main
import (
"
golang.org/x/net/websocket"
"net/http"
"fmt"
)
func echoHandler(ws *websocket.Conn) {
for {
receivedtext := make([]byte, 100)
n,err := ws.Read(receivedtext)
if err != nil {
fmt.Printf("Received: %d bytes\n",n)
}
s := string(receivedtext[:n])
fmt.Printf("Received: %d bytes: %s\n",n,s)
}
}
func main() {
http.Handle("/echo", websocket.Handler(echoHandler))
http.Handle("/", http.FileServer(http.Dir(".")))
err := http.ListenAndServe(":8080", nil)
if err != nil {
panic("Error: " + err.Error())
}
}
Web page
=======
<html>
<head>
<meta charset="UTF-8" />
<script>
var serversocket = new WebSocket("ws://localhost:8080/echo");
serversocket.onopen = function() {
serversocket.send("Connection init");
}
// Write message on receive
serversocket.onmessage = function(e) {
document.getElementById('comms').innerHTML += "Received: " + e.data + "<br>";
};
function senddata() {
var data = document.getElementById('sendtext').value;
serversocket.send(data);
document.getElementById('comms').innerHTML += "Sent: " + data + "<br>";
}
</script>
</head>
<body>
<input id="sendtext" type="text" />
<input type="button" id="sendBtn" value="send" onclick="senddata()"></input>
<div id='comms'></div>
</body>
</html>