websocket.go 669 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package websocket_client
  2. import (
  3. "net/http"
  4. "github.com/gin-gonic/gin"
  5. "github.com/gorilla/websocket"
  6. )
  7. //设置websocket
  8. //CheckOrigin防止跨站点的请求伪造
  9. var upGrader = websocket.Upgrader{
  10. CheckOrigin: func(r *http.Request) bool {
  11. return true
  12. },
  13. }
  14. //websocket实现
  15. func Ping(c *gin.Context) {
  16. //升级get请求为webSocket协议
  17. ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
  18. if err != nil {
  19. return
  20. }
  21. defer ws.Close() //返回前关闭
  22. for {
  23. //读取ws中的数据
  24. mt, message, err := ws.ReadMessage()
  25. if err != nil {
  26. break
  27. }
  28. //写入ws数据
  29. err = ws.WriteMessage(mt, message)
  30. if err != nil {
  31. break
  32. }
  33. }
  34. }