|
|
@@ -4,63 +4,17 @@ import (
|
|
|
"log"
|
|
|
"net/http"
|
|
|
"strconv"
|
|
|
- "time"
|
|
|
-
|
|
|
- "github.com/gorilla/websocket"
|
|
|
)
|
|
|
|
|
|
+// Start the HTTP and WebSocket server
|
|
|
func (server *Server) Start() {
|
|
|
- // Start the server
|
|
|
- http.HandleFunc("/ws", func(w http.ResponseWriter, r *http.Request) {
|
|
|
- handleConnections(w, r)
|
|
|
- })
|
|
|
- log.Fatal(http.ListenAndServe(server.ListenAddress+":"+strconv.Itoa(server.ListenPort), nil))
|
|
|
-
|
|
|
- // return nil
|
|
|
-}
|
|
|
-
|
|
|
-var upgrader = websocket.Upgrader{
|
|
|
- ReadBufferSize: 1024,
|
|
|
- WriteBufferSize: 1024,
|
|
|
-}
|
|
|
-
|
|
|
-func handleConnections(w http.ResponseWriter, r *http.Request) {
|
|
|
- conn, err := upgrader.Upgrade(w, r, nil)
|
|
|
- if err != nil {
|
|
|
- log.Println(err)
|
|
|
- return
|
|
|
- }
|
|
|
- defer conn.Close()
|
|
|
+ // Declare ourselves up and running to the console.
|
|
|
+ log.Println("Started sudoku-funpark server")
|
|
|
|
|
|
- log.Println("Starting server")
|
|
|
- go readMessages(conn)
|
|
|
- writeMessages(conn)
|
|
|
+ // Start the http server
|
|
|
+ http.HandleFunc("/json", server.jsonDumper)
|
|
|
|
|
|
-}
|
|
|
-
|
|
|
-func readMessages(conn *websocket.Conn) {
|
|
|
- for {
|
|
|
- messageType, message, err := conn.ReadMessage()
|
|
|
- if err != nil {
|
|
|
- log.Println("Error reading message:", err)
|
|
|
- break
|
|
|
- }
|
|
|
- log.Printf("Received(%d): %s\n", messageType, message)
|
|
|
-
|
|
|
- // This sets the time-out for any incoming messages.
|
|
|
- // conn.SetReadDeadline(time.Now().Add(10 * time.Second))
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func writeMessages(conn *websocket.Conn) {
|
|
|
- for {
|
|
|
- err := conn.WriteMessage(websocket.TextMessage, []byte("keep alive - staying alive"))
|
|
|
- if err != nil {
|
|
|
- log.Println("Error writing message:", err)
|
|
|
- break
|
|
|
- }
|
|
|
- // This sets the time-out for any outgoing messages.
|
|
|
- // conn.SetWriteDeadline(time.Now().Add(10 * time.Second))
|
|
|
- time.Sleep(time.Minute)
|
|
|
- }
|
|
|
+ // Start the websocket server
|
|
|
+ http.HandleFunc("/ws", server.handleConnections)
|
|
|
+ log.Fatal(http.ListenAndServe(server.ListenAddress+":"+strconv.Itoa(server.ListenPort), nil))
|
|
|
}
|