代码拉取完成,页面将自动刷新
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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。