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.
 
 
 
 
 
 
openim-sdk-cpp/go/chao-sdk-core/test/sendMessage.go

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
}