| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package server
- import (
- "log"
- "net/http"
- "strconv"
- "time"
- "github.com/gorilla/websocket"
- )
- func (server *Server) Start() error {
- // 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))
- time.Sleep(600 * time.Second)
- 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()
- log.Println("Starting server")
- go readMessages(conn)
- writeMessages(conn)
- }
- 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("Hello World!"))
- 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.Second)
- }
- }
|