1 Star 0 Fork 0

saxon134 / sysmain

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
sdp.client.msg.go 1.58 KB
一键复制 编辑 原始数据 按行查看 历史
saxon134 提交于 2023-11-26 22:51 . init
package sdp
import (
"gitee.com/saxon134/go-utils/saData"
"gitee.com/saxon134/go-utils/saData/saUrl"
"gitee.com/saxon134/go-utils/saHttp"
"gitee.com/saxon134/sysmain/errs"
"time"
)
// SendMsg
// app: 必选,指定应用
// host/port: 可选,指定服务器;空则向所有实例的应用发送消息
func (m *Client) SendMsg(targetApp string, targetHost string, targetPort int, msg string) (err error) {
if targetApp == "" {
return errs.New("必须指定应用")
}
if msg == "" {
return errs.New("消息不能空")
}
var sdpAry = m.getSdpAry(targetApp)
if sdpAry == nil || len(sdpAry) == 0 {
return errs.New("无可用应用")
}
var headers = map[string]string{}
if m.secret != "" {
var timestamp = saData.String(time.Now().Unix())
var sign = saData.Md5(m.secret+timestamp, true)
headers["sign"] = sign
headers["timestamp"] = timestamp
}
var sendCnt = 0
if targetHost != "" {
for _, v := range sdpAry {
if v.Host == targetHost && v.Port == targetPort {
var url = saUrl.ConnectUri("http://"+v.Host+":"+saData.String(v.Port), m.clientRoot, "sdp/msg")
_, err = saHttp.PostRequest(url, map[string]string{"msg": msg}, headers)
sendCnt++
return err
}
}
} else {
for _, v := range sdpAry {
if v.Host != "" {
var url = saUrl.ConnectUri("http://"+v.Host+":"+saData.String(v.Port), m.clientRoot, "sdp/msg")
_, err = saHttp.PostRequest(url, map[string]string{"msg": msg}, headers)
sendCnt++
if err != nil {
return err
}
}
}
}
if sendCnt == 0 {
return errs.New("未找到可发送消息的应用")
}
return nil
}
Go
1
https://gitee.com/saxon134/sysmain.git
git@gitee.com:saxon134/sysmain.git
saxon134
sysmain
sysmain
6a6dcddcde71

搜索帮助

53164aa7 5694891 3bd8fe86 5694891