Change websocket library. This Fixes #6

This commit is contained in:
Andreas Mieke 2017-08-18 08:51:43 +02:00
parent 7090d5f8c6
commit 6e482a2220
3 changed files with 22 additions and 31 deletions

View file

@ -66,7 +66,7 @@ func setupGin() {
router.POST("/admin/approve/:id", approveSnap) router.POST("/admin/approve/:id", approveSnap)
router.POST("/admin/reject/:id", rejectSnap) router.POST("/admin/reject/:id", rejectSnap)
router.GET("/ws", func(c *gin.Context) { wsHandler(c.Writer, c.Request) }) router.GET("/ws", wsHandler)
router.GET("/listSnaps", listSnaps) router.GET("/listSnaps", listSnaps)
router.LoadHTMLGlob(config.C.TemplatesDirectory + "/*.html") router.LoadHTMLGlob(config.C.TemplatesDirectory + "/*.html")

View file

@ -1,46 +1,31 @@
package main package main
import ( import (
"encoding/json"
"log" "log"
"net/http"
melody "gopkg.in/olahol/melody.v1"
"git.1750studios.com/AniNite/SocialDragon/database" "git.1750studios.com/AniNite/SocialDragon/database"
"github.com/gorilla/websocket" "github.com/gin-gonic/gin"
) )
var wsupgrader = websocket.Upgrader{ var m *melody.Melody
ReadBufferSize: 1024,
WriteBufferSize: 1024,
CheckOrigin: func(r *http.Request) bool {
return true
},
}
var sockets []*websocket.Conn
var lastID uint
func wsHandler(w http.ResponseWriter, r *http.Request) { func init() {
conn, err := wsupgrader.Upgrade(w, r, nil) m = melody.New()
if err != nil { }
log.Printf("Failed to set websocket upgrade: %+v", err)
return func wsHandler(c *gin.Context) {
} m.HandleRequest(c.Writer, c.Request)
sockets = append(sockets, conn)
for {
_, _, err := conn.ReadMessage()
if err != nil {
break
}
}
} }
// SendUpdate sends the content of IT to all connected webcosckets, gets called by database handler. // SendUpdate sends the content of IT to all connected webcosckets, gets called by database handler.
func SendUpdate(IT database.Item) { func SendUpdate(IT database.Item) {
for i, socket := range sockets { msg, err := json.Marshal(IT)
err := socket.WriteJSON(IT) if err != nil {
if err != nil { log.Print(err)
sockets = append(sockets[:i], sockets[i+1:]...)
continue
}
} }
m.Broadcast(msg)
} }

6
vendor/vendor.json vendored
View file

@ -158,6 +158,12 @@
"revision": "5f57d2222ad794d0dffb07e664ea05e2ee07d60c", "revision": "5f57d2222ad794d0dffb07e664ea05e2ee07d60c",
"revisionTime": "2016-07-18T13:41:25Z" "revisionTime": "2016-07-18T13:41:25Z"
}, },
{
"checksumSHA1": "imPi2JDKAJPo4w4tiJWviYRKXOg=",
"path": "gopkg.in/olahol/melody.v1",
"revision": "d521390733761fe1db13de575c253afd5c743085",
"revisionTime": "2017-05-18T10:55:55Z"
},
{ {
"checksumSHA1": "fALlQNY1fM99NesfLJ50KguWsio=", "checksumSHA1": "fALlQNY1fM99NesfLJ50KguWsio=",
"path": "gopkg.in/yaml.v2", "path": "gopkg.in/yaml.v2",