Skip to content

Instantly share code, notes, and snippets.

@diorahman
Created July 21, 2015 01:53
Show Gist options
  • Save diorahman/b1b3fc92d2b67d43ff8b to your computer and use it in GitHub Desktop.
Save diorahman/b1b3fc92d2b67d43ff8b to your computer and use it in GitHub Desktop.
golang websocket example with basic auth
package main
import (
"log"
"net/http"
"encoding/json"
"golang.org/x/net/websocket"
"fmt"
)
type ClientHello struct {
messageType string
protocolVersion string
clientVersion string
}
func main() {
config, err := websocket.NewConfig("wss://sandbox/websocket", "wss://sandbox/websocket")
if err != nil {
log.Fatal(err)
}
config.Header = http.Header {
"Authorization" : {"Basic blabla=="},
}
ws, err := websocket.DialConfig(config)
if err != nil {
log.Fatal(err)
}
clientHello := ClientHello {
"client-hello",
"1",
"4.0",
}
msg, err := json.Marshal(clientHello)
if err != nil {
log.Fatal(err)
}
ws.Write(msg)
var retMsg = make([]byte, 512)
var n int
n, err = ws.Read(retMsg)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Received: %s.\n", retMsg[:n])
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment