You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
4.3 KiB
138 lines
4.3 KiB
// Copyright © 2023 OpenIM SDK. All rights reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package test
|
|
|
|
import (
|
|
"github.com/openimsdk/openim-sdk-core/v3/open_im_sdk"
|
|
"github.com/openimsdk/openim-sdk-core/v3/pkg/constant"
|
|
"github.com/openimsdk/openim-sdk-core/v3/pkg/utils"
|
|
"github.com/openimsdk/protocol/sdkws"
|
|
"github.com/openimsdk/tools/log"
|
|
)
|
|
|
|
func init() {
|
|
//sdk_struct.SvrConf = sdk_struct.IMConfig{Platform: 1, ApiAddr: APIADDR, WsAddr: WSADDR, DataDir: "./", LogLevel: 6, ObjectStorage: "cos"}
|
|
allLoginMgr = make(map[int]*CoreNode)
|
|
|
|
}
|
|
|
|
//funcation InitMgr(num int) {
|
|
// log.Warn("", "allLoginMgr cap: ", num)
|
|
// allLoginMgr = make(map[int]*CoreNode, num)
|
|
//}
|
|
|
|
type CoreNode struct {
|
|
token string
|
|
userID string
|
|
mgr *open_im_sdk.LoginMgr
|
|
sendMsgSuccessNum uint32
|
|
sendMsgFailedNum uint32
|
|
idx int
|
|
}
|
|
|
|
func addSendSuccess() {
|
|
sendSuccessLock.Lock()
|
|
defer sendSuccessLock.Unlock()
|
|
sendSuccessCount++
|
|
}
|
|
func addSendFailed() {
|
|
sendFailedLock.Lock()
|
|
defer sendFailedLock.Unlock()
|
|
sendFailedCount++
|
|
}
|
|
|
|
//
|
|
//funcation TestSendCostTime() {
|
|
// GenWsConn(0)
|
|
// sendID := allUserID[0]
|
|
// recvID := allUserID[0]
|
|
// for {
|
|
// operationID := utils.OperationIDGenerator()
|
|
// b := SendTextMessage("test", sendID, recvID, operationID, allWs[0])
|
|
// if b {
|
|
// log.Debug(operationID, sendID, recvID, "SendTextMessage success")
|
|
// } else {
|
|
// log.Error(operationID, sendID, recvID, "SendTextMessage failed")
|
|
// }
|
|
// time.Sleep(time.Duration(5) * time.Second)
|
|
// log.Debug(operationID, "//////////////////////////////////")
|
|
// }
|
|
//
|
|
//}
|
|
//funcation TestSend(idx int, text string, uidNum, intervalSleep int) {
|
|
// for {
|
|
// operationID := utils.OperationIDGenerator()
|
|
// sendID := allUserID[idx]
|
|
// recvID := allUserID[rand.Intn(uidNum)]
|
|
// b := SendTextMessage(text, sendID, recvID, operationID, allWs[idx])
|
|
// if b {
|
|
// log.Debug(operationID, sendID, recvID, "SendTextMessage success")
|
|
// } else {
|
|
// log.Error(operationID, sendID, recvID, "SendTextMessage failed")
|
|
// }
|
|
// time.Sleep(time.Duration(rand.Intn(intervalSleep)) * time.Millisecond)
|
|
// }
|
|
//}
|
|
//
|
|
|
|
//funcation sendPressMsg(idx int, text string, uidNum, intervalSleep int) {
|
|
// for {
|
|
// operationID := utils.OperationIDGenerator()
|
|
// sendID := allUserID[idx]
|
|
// recvID := allUserID[rand.Intn(uidNum)]
|
|
// b := SendTextMessageOnlyForPress(text, sendID, recvID, operationID, allLoginMgr[idx].mgr.Ws())
|
|
// if b {
|
|
// log.Debug(operationID, sendID, recvID, "SendTextMessage success")
|
|
// } else {
|
|
// log.Error(operationID, sendID, recvID, "SendTextMessage failed ")
|
|
// }
|
|
// time.Sleep(time.Duration(rand.Intn(intervalSleep)) * time.Second)
|
|
// }
|
|
//}
|
|
|
|
func sendPressMsg(index int, sendId, recvID string, groupID string, idx string) bool {
|
|
|
|
return SendTextMessageOnlyForPress(idx, sendId, recvID, groupID, utils.OperationIDGenerator())
|
|
}
|
|
func SendTextMessageOnlyForPress(text, senderID, recvID, groupID, operationID string) bool {
|
|
var wsMsgData sdkws.MsgData
|
|
options := make(map[string]bool, 2)
|
|
wsMsgData.SendID = senderID
|
|
if groupID == "" {
|
|
wsMsgData.RecvID = recvID
|
|
wsMsgData.SessionType = constant.SingleChatType
|
|
} else {
|
|
wsMsgData.GroupID = groupID
|
|
wsMsgData.SessionType = constant.SuperGroupChatType
|
|
}
|
|
|
|
wsMsgData.ClientMsgID = utils.GetMsgID(senderID)
|
|
wsMsgData.SenderPlatformID = 1
|
|
|
|
wsMsgData.MsgFrom = constant.UserMsgType
|
|
wsMsgData.ContentType = constant.Text
|
|
wsMsgData.Content = []byte(text)
|
|
wsMsgData.CreateTime = utils.GetCurrentTimestampByMill()
|
|
wsMsgData.Options = options
|
|
wsMsgData.OfflinePushInfo = nil
|
|
//timeout := 300
|
|
log.ZInfo(ctx, "SendReqTest begin ", "operationID", operationID, "wsMsgData", wsMsgData)
|
|
//flag := ws.SendReqTest(&wsMsgData, constant.WSSendMsg, timeout, senderID, operationID)
|
|
//
|
|
//if flag != true {
|
|
// log.Warn(operationID, "SendReqTest failed ", wsMsgData)
|
|
//}
|
|
return true
|
|
}
|
|
|