1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package main
- import (
- "encoding/json"
- "fmt"
- "github.com/gorilla/websocket"
- "github.com/sirupsen/logrus"
- "time"
- )
- func main() {
- wsURL := "ws://10.0.0.3:12090/bus/v1/homePage"
- d := websocket.Dialer{}
- conn, _, err := d.Dial(wsURL, nil)
- if err != nil {
- panic(err.Error())
- }
- go clientReadMessage(conn)
- writeToken(conn)
- go clientWriteMessage(conn)
- select {}
- }
- func writeToken(conn *websocket.Conn) {
- token := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVVUlEIjoiYWM3NzgyMDMtNTg3ZC00ZjBjLWEzZDktYzgwNDA1NTBjNDllIiwiVXNlcklEIjoyLCJVc2VybmFtZSI6Inl1bmxvbmciLCJOaWNrTmFtZSI6IuadjuS6kem-mSIsIlJvbGVJRHMiOlszXSwiRGVwdElEIjoxLCJSb2xlTmFtZXMiOm51bGwsImlzcyI6IkpXVCIsImV4cCI6MTY3MzQxNjA1MSwibmJmIjoxNjczMzI5NjUxfQ.QxEgaPcTBmP8JTn0d7CVRs0aXl1C3M3Dynh4KFqMWh8"
- homeMsg := HomeMsg{
- MsgType: 11,
- Data: token,
- }
- homeBytes, err := json.Marshal(homeMsg)
- if err != nil {
- fmt.Println("marshal err")
- return
- }
- err = conn.WriteMessage(websocket.TextMessage, homeBytes)
- if err != nil {
- fmt.Printf("Write Message error:%s\n", err)
- return
- }
- fmt.Println("Write Message success")
- }
- func clientReadMessage(conn *websocket.Conn) {
- for {
- msgType, msg, err := conn.ReadMessage()
- if err != nil {
- if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) {
- logrus.Warnf("readMessage err:%s", err)
- } else {
- logrus.Info("readMessage conn closed")
- }
- break
- }
- logrus.WithFields(logrus.Fields{"msgType": msgType, "data": string(msg), "err": err}).Info("read success")
- }
- }
- type HomeMsg struct {
- DeptID int `json:"deptId"`
- MsgType uint8 `json:"msgType"`
- Data string `json:"data"`
- }
- func clientWriteMessage(conn *websocket.Conn) {
- ticker := time.NewTicker(5 * time.Second)
- for {
- select {
- case <-ticker.C:
- homeMsg := HomeMsg{
- MsgType: 1,
- Data: "",
- }
- homeBytes, err := json.Marshal(homeMsg)
- if err != nil {
- fmt.Println("marshal err")
- return
- }
- err = conn.WriteMessage(websocket.TextMessage, homeBytes)
- if err != nil {
- fmt.Printf("Write Message error:%s\n", err)
- return
- }
- fmt.Println("Write Message success")
- }
- }
- }
|