ws.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package ws
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/gorilla/websocket"
  5. "net/http"
  6. "sync"
  7. )
  8. type User struct {
  9. Conn *websocket.Conn
  10. Name string
  11. Id string
  12. Avator string
  13. To_id string
  14. }
  15. type Message struct {
  16. conn *websocket.Conn
  17. context *gin.Context
  18. content []byte
  19. messageType int
  20. }
  21. type TypeMessage struct {
  22. Type interface{} `json:"type"`
  23. Data interface{} `json:"data"`
  24. }
  25. type ClientMessage struct {
  26. Name string `json:"name"`
  27. Avator string `json:"avator"`
  28. Id string `json:"id"`
  29. VisitorId string `json:"visitor_id"`
  30. Group string `json:"group"`
  31. Time string `json:"time"`
  32. ToId string `json:"to_id"`
  33. Content string `json:"content"`
  34. City string `json:"city"`
  35. ClientIp string `json:"client_ip"`
  36. Refer string `json:"refer"`
  37. }
  38. var ClientList = make(map[string]*User)
  39. var KefuList = make(map[string][]*User)
  40. var message = make(chan *Message)
  41. var upgrader = websocket.Upgrader{}
  42. var Mux sync.RWMutex
  43. func init() {
  44. upgrader = websocket.Upgrader{
  45. ReadBufferSize: 1024,
  46. WriteBufferSize: 1024,
  47. // 解决跨域问题
  48. CheckOrigin: func(r *http.Request) bool {
  49. return true
  50. },
  51. }
  52. }