What does this websocket url "ws://{{$}}/ws" mean?
go, url, websocket
Solution
I'm guessing you are using the template package of Go. The template package supports `{{ placeholders }}` that are annotated by those curly brackets. Those curly brackets might contain statements like `range`, `if` etc, and variable names. The variable name `$` is a special name that points to the root element that was passed to the `template.Execute` method.
Please add the code of your `wsServe` method so that we can see what value your are passing to your template. I will extend my answer afterwards.
Problem
I work with websocket in go. And I got a websocket url format from a trivial example that I google like this: ``` ws://{{$}}/ws ``` Relatively complete code below: home.html: ``` <html> <head> <title>Chat Example</title> <script type="text/javascript"> $(function() { ...... if (window["WebSocket"]) { conn = new WebSocket("ws://{{$}}/ws"); conn.onclose = function(evt) { appendLog($("<div><b>Connection closed.</b></div>")) } conn.onmessage = function(evt) { appendLog($("<div/>").text(evt.data)) } } else { appendLog($("<div><b>Your browser does not support WebSockets.</b></div>")) } ...... }); </script> </head> </html> ``` And wsServer.go: ``` package main import ( "flag" "log" "net/http" "text/template" ) var addr = flag.String("addr", ":8080", "http service address") var homeTempl = template.Must(template.ParseFiles("home.html")) func serveHome(w http.ResponseWriter, r *http.Request) { ...... w.Header().Set("Content-Type", "text/html; charset=utf-8") homeTempl.Execute(w, r.Host) } func main() { http.HandleFunc("/", serveHome) http.HandleFunc("/ws", serveWs) err := http.ListenAndServe(:8080, nil) if err != nil { log.Fatal("ListenAndServe: ", err) } } ``` I thought it would be a regular expression while actually I can't explain it. I test it on my own PC browser, and connect success with: ``` http://localhost:8080 ``` but ``` http://ip:8080 (which ip is my computer's also the litsening server's ip) ``` not. And why? Of course it works when I change "ws://{{$}}/ws" to a certain url. But I want to know why?And what can this expression matching for? The complete example code is large, I think above is enough to the question. If I miss something you can find out complete example in this page : https://github.com/garyburd/go-websocket/tree/master/examples/chat