Files
baseapi/platformapi/mtwmapi/im_test.go
richboo111 150b51e01f 1
2023-06-16 15:34:23 +08:00

232 lines
6.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package mtwmapi
import (
"encoding/json"
"fmt"
"git.rosy.net.cn/baseapi/utils"
"github.com/gazeboxu/mapstructure"
"github.com/go-redis/redis"
"github.com/gorilla/websocket"
"io"
"net/http/httptest"
"testing"
"time"
)
const (
MTIMPushUrl = "wss://wpush.meituan.com/websocket"
TestAppID = "589_WMOPEN"
TestToken = "wo589i4VsZHFH2fh4uVsr6Dtc3k6vG8Xu0vxpreBQFy6QAvg"
TestMTIM589 = "wss://wpush.meituan.com/websocket/589_WMOPEN/wo589i4VsZHFH2fh4uVsr6Dtc3k6vG8Xu0vxpreBQFy6QAvg"
TestMTIM4123 = "wss://wpush.meituan.com/websocket/4123_WMOPEN/wo4123aAVXDUkZDYucMoTDAZgsMzjrR_porZcLGv2GmWRNOiw"
TestWssUrl = "wss://www.jxc4.com:443/v2/event/TestWebsocket"
TestWssUrl1 = "wss://www-jxgy.jxc4.com:443/v2/im/StartWebSocket"
)
var rdb = redis.NewClient(&redis.Options{
//Addr: "www.jxc4.com:6379",
//Password: "",
Addr: "127.0.0.1:6379",
Password: "123456",
DB: 0,
})
func TestSendMsg(t *testing.T) {
data := PushContentReq{
AppID: 589,
AppPoiCode: "8694203",
MsgID: 20230615,
MsgContent: "QYEyt4edHFiW0Fg0iKqeSKZ+Dab9zKJWSLwQuE38J+XL/1BUIwkqy3sf3E9lOK77",
MsgSource: 1,
MsgType: 1,
Cts: int(time.Now().Unix()),
OpenUserID: 12248014636,
}
dataMar, err := json.Marshal(data)
ret, err := api.MsgSend(string(dataMar))
fmt.Println(ret, err)
}
//测试心跳
func TestHeartCheck(t *testing.T) {
var clientID = make(map[string]*websocket.Conn)
//conn, resp, err := websocket.DefaultDialer.Dial(TestMTIMPushUrl, nil)
//str := "~#HHhehHBBB#~"
//data := []byte(str)
conn1, resp1, err1 := websocket.DefaultDialer.Dial(TestMTIM4123, nil)
fmt.Println(conn1, resp1, err1)
clientID["1"] = conn1
conn, resp, err := websocket.DefaultDialer.Dial(TestMTIM589, nil)
clientID["2"] = conn
fmt.Println(conn, resp, err)
if err != nil || resp.StatusCode != 101 {
fmt.Printf("连接失败:%v http响应不成功", err)
}
//关闭
defer func(conn *websocket.Conn) {
err := conn.Close()
if err != nil {
return
}
}(conn)
if err := conn.WriteControl(websocket.PingMessage, []byte{}, time.Now().Add(time.Second)); err != nil {
fmt.Println(err)
}
//err = conn.WriteMessage(websocket.TextMessage, data)
//if err != nil {
// fmt.Println(err)
//}
for {
_, msg, err := conn.ReadMessage()
temp := string(msg)
if err != nil || temp != "HB" {
break
}
fmt.Printf("%s receive: %s\n", conn.RemoteAddr(), string(msg))
}
}
func TestGetConnectionToken(t *testing.T) {
resp, err := api.GetConnectionToken()
if err != nil {
t.Fatal(err)
}
retVal := GetConnTokenResp{}
err = mapstructure.Decode(resp, &retVal)
fmt.Println(err)
fmt.Println(utils.Format4Output(retVal, false))
}
var wsList []*websocket.Conn
type RetData struct {
Code int `json:"code"` //响应code
Msg string `json:"msg"` //响应msg success/fail
Data interface{} `json:"data"` //信息
}
func TestWebSocketClient(t *testing.T) {
var retData RetData
retData.Code = 0
retData.Msg = "success"
retData.Data = "发送信息成功"
retJson, _ := json.Marshal(retData)
str := string(retJson)
w := httptest.NewRecorder()
w.Header().Set("Content-Type", "application/json; charset=utf-8")
_, _ = io.WriteString(w, str)
return
}
func TestPUSH(t *testing.T) {
key := "589:7954977:10"
rdb.RPush(key, "1111111111")
//rdb.RPush(key, "{\"vendorID\":10,\"userID\":11158569333,\"NewMessageNum\":3,\"latestMsg\":\"hhhhhhhhhhh\",\"latestTime\":1681983980}")
rdb.RPush(key, "{\"vendorID\":10,\"userID\":11158569333,\"NewMessageNum\":3,\"latestMsg\":\"oooooooooo\",\"latestTime\":1681983980}")
rdb.RPush(key, "2222222222222")
rdb.RPush(key, "{\"vendorID\":10,\"userID\":11158569333,\"NewMessageNum\":4,\"latestMsg\":\"成功插入新数据看下cnt\",\"latestTime\":1681983980}")
rdb.RPush(key, "{\"vendorID\":10,\"userID\":11158569333,\"NewMessageNum\":5,\"latestMsg\":\"成功插入新数据看下cnt\",\"latestTime\":1681983980}")
}
//用户消息列表
type UserMessageList struct {
VendorID int `json:"vendorID"` //平台品牌 10-美团 11-饿了么
UserID int `json:"userID"` //用户ID
NewMessageNum int `json:"NewMessageNum"` //新消息数量
LatestMsg string `json:"latestMsg"` //最新一条消息
LatestTime int `json:"latestTime"` //最新一条消息发送时间
}
func TestNewRedis(t *testing.T) {
var (
err error
flag = 11158569333
key = "589:7954977:10"
temp = UserMessageList{}
)
if n := rdb.Exists(key).Val(); n > 0 {
s2 := rdb.LRange(key, 0, -1).Val()
for i := 0; i < len(s2); i++ {
v := UserMessageList{}
_ = json.Unmarshal([]byte(s2[i]), &v)
if v.UserID == flag {
//删除此条数据
err = rdb.LSet(key, int64(i), "del").Err()
err = rdb.LRem(key, 0, "del").Err()
s2 = append(s2[:i], s2[i+1:]...)
i--
//cnt=0 重新赋值
temp = UserMessageList{
VendorID: v.VendorID,
UserID: v.UserID,
NewMessageNum: 0,
LatestMsg: v.LatestMsg,
LatestTime: v.LatestTime,
}
}
}
str, _ := json.Marshal(temp)
err = rdb.RPush(key, str).Err()
}
fmt.Print(err)
//s2 := rdb.LRange(key, 0, -1).Val()
//fmt.Printf("before len %d\n", len(s2))
//fmt.Printf("before ans %s\n", s2)
//cnt := 0
//n := rdb.Exists(key).Val()
//if n > 0 {
// for i := 0; i < len(s2); i++ {
// v := UserMessageList{}
// _ = json.Unmarshal([]byte(s2[i]), &v)
// if v.UserID == flag {
// rdb.LSet(key, int64(i), "del")
// rdb.LRem(key, 0, "del")
// s2 = append(s2[:i], s2[i+1:]...)
// i--
// if v.NewMessageNum == 0 { //目前为首条
// cnt++ //赋值1
// } else {
// cnt = v.NewMessageNum
// }
// }
// }
//}
//fmt.Printf("after cnt %d\n", cnt)
//fmt.Printf("after len %d\n", len(s2))
//fmt.Printf("after ans %s\n", s2)
////存入flag数据
//ans := UserMessageList{
// VendorID: 10,
// UserID: 11158569333,
// NewMessageNum: cnt,
// LatestMsg: "成功插入新数据看下cnt",
// LatestTime: 1681983980,
//}
//param, _ := json.Marshal(ans)
//rdb.RPush(key, param)
}
func TestGetWayBillFee(t *testing.T) {
//order, _ := api.OrderGetOrderDetail(1100486451772280163, false)
//globals.SugarLogger.Debugf("order:==%s", utils.Format4Output(order, false)) 2002
api.GetWayBillFee("1100486451772280163", 2)
api.GetWayBillFee("1100486451772280163", 1)
}
// 商家没有接入众包配送,无法进行众包配送相关操作
func TestGetShippingFeeList(t *testing.T) {
api.GetShippingFeeList("1300486314174032613,1100487300210228389", 1)
api.GetShippingFeeList("1300486314174032613,1100487300210228389", 2)
}