Change websocket library. This Fixes #6
This commit is contained in:
parent
7090d5f8c6
commit
6e482a2220
|
@ -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")
|
||||||
|
|
|
@ -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
|
|
||||||
}
|
|
||||||
sockets = append(sockets, conn)
|
|
||||||
for {
|
|
||||||
_, _, err := conn.ReadMessage()
|
|
||||||
if err != nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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.
|
// 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 {
|
||||||
sockets = append(sockets[:i], sockets[i+1:]...)
|
log.Print(err)
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
m.Broadcast(msg)
|
||||||
}
|
}
|
||||||
|
|
6
vendor/vendor.json
vendored
6
vendor/vendor.json
vendored
|
@ -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",
|
||||||
|
|
Loading…
Reference in a new issue