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/reject/:id", rejectSnap)
router.GET("/ws", func(c *gin.Context) { wsHandler(c.Writer, c.Request) })
router.GET("/ws", wsHandler)
router.GET("/listSnaps", listSnaps)
router.LoadHTMLGlob(config.C.TemplatesDirectory + "/*.html")

View file

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

6
vendor/vendor.json vendored
View file

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