package firenzeapi import ( "bytes" "context" "encoding/json" "io/ioutil" "net/http" "service/api/base" firenzeproto "service/api/proto/firenze" "service/library/logger" "time" ) var ( sendBizMsgUrl = "https://wsdebug.tiefen.fun/send_biz_msg" batchSendBizMsgUrl = "https://wsdebug.tiefen.fun/batch_send_biz_msg" sendBroadcastMsgUrl = "https://wsdebug.tiefen.fun/send_broadcast_msg" onlineMidsUrl = "https://wsdebug.tiefen.fun/online_mids" ) // 给指定mid发消息 func SendBizMsg(param *firenzeproto.SendBizMsgParam) (*base.BaseRespHead, error) { defer logger.Recover() ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*2000) defer cancel() jsonStr, err := json.Marshal(param) if err != nil { logger.Error("build data error: %v", err) return nil, err } req, err := http.NewRequestWithContext(ctx, "POST", sendBizMsgUrl, bytes.NewBuffer(jsonStr)) if err != nil { logger.Error("NewRequest error %v", err) return nil, err } req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { logger.Error("failed to add case, err : %v", err) return nil, err } defer resp.Body.Close() res := new(base.BaseRespHead) bs, _ := ioutil.ReadAll(resp.Body) err = json.Unmarshal(bs, &res) if err != nil { return nil, err } return res, nil } // 给批量mid发消息 func BatchSendBizMsg(param *firenzeproto.BatchSendBizMsgParam) (*base.BaseRespHead, error) { defer logger.Recover() ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*2000) defer cancel() jsonStr, err := json.Marshal(param) if err != nil { logger.Error("build data error: %v", err) return nil, err } req, err := http.NewRequestWithContext(ctx, "POST", batchSendBizMsgUrl, bytes.NewBuffer(jsonStr)) if err != nil { logger.Error("NewRequest error %v", err) return nil, err } req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { logger.Error("failed to add case, err : %v", err) return nil, err } defer resp.Body.Close() res := new(base.BaseRespHead) bs, _ := ioutil.ReadAll(resp.Body) err = json.Unmarshal(bs, &res) if err != nil { return nil, err } return res, nil } // 给所有用户广播消息 func SendBroadcastMsg(param *firenzeproto.SendBroadcastMsgParam) (*base.BaseRespHead, error) { defer logger.Recover() ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*2000) defer cancel() jsonStr, err := json.Marshal(param) if err != nil { logger.Error("build data error: %v", err) return nil, err } req, err := http.NewRequestWithContext(ctx, "POST", sendBroadcastMsgUrl, bytes.NewBuffer(jsonStr)) if err != nil { logger.Error("NewRequest error %v", err) return nil, err } req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { logger.Error("failed to add case, err : %v", err) return nil, err } defer resp.Body.Close() res := new(base.BaseRespHead) bs, _ := ioutil.ReadAll(resp.Body) err = json.Unmarshal(bs, &res) if err != nil { return nil, err } return res, nil } // 获取所有在线的mid func OnlineMids(param *firenzeproto.OnlineMidsParam) (*firenzeproto.OnlineMidsResp, error) { defer logger.Recover() ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*2000) defer cancel() jsonStr, err := json.Marshal(param) if err != nil { logger.Error("build data error: %v", err) return nil, err } req, err := http.NewRequestWithContext(ctx, "POST", onlineMidsUrl, bytes.NewBuffer(jsonStr)) if err != nil { logger.Error("NewRequest error %v", err) return nil, err } req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { logger.Error("failed to add case, err : %v", err) return nil, err } defer resp.Body.Close() res := new(firenzeproto.OnlineMidsResp) bs, _ := ioutil.ReadAll(resp.Body) err = json.Unmarshal(bs, &res) if err != nil { return nil, err } return res, nil }