From a2e183b5b90aed755333e4d75914d7ce2fa34a62 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Thu, 27 Apr 2023 11:55:54 +0800 Subject: [PATCH] 1 --- business/partner/purchase/im/im.go | 23 +++++++++++++++-------- business/partner/purchase/im/im_model.go | 3 ++- business/partner/purchase/im/im_server.go | 7 +++---- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/business/partner/purchase/im/im.go b/business/partner/purchase/im/im.go index 551c6d810..019e68238 100644 --- a/business/partner/purchase/im/im.go +++ b/business/partner/purchase/im/im.go @@ -4,7 +4,6 @@ import ( "encoding/json" "errors" "fmt" - "net/http" "git.rosy.net.cn/jx-callback/globals" @@ -20,7 +19,7 @@ import ( // SendToVendor 向平台发消息 func SendToVendor(msg []byte) { var ( - w http.ResponseWriter + //w http.ResponseWriter sendData SendData err error elmAppID = api.EbaiAPI.GetSource() @@ -48,14 +47,16 @@ func SendToVendor(msg []byte) { } if err != nil { - ClientRender(w, Fail, FailMsg, map[string]string{ + ClientRender(Fail, FailMsg, map[string]string{ "errMsg": fmt.Sprintf("%v", err), }) + return } else { - ClientRender(w, SuccessCode, SuccessMsg, map[string]interface{}{ + ClientRender(SuccessCode, SuccessMsg, map[string]interface{}{ "vendorID": sendData.VendorID, "msg": "ok", }) + return } return } @@ -93,6 +94,7 @@ func Send(data []byte) { } fmt.Printf("%s receive: %s\n", conn.RemoteAddr(), string(msg)) } + return } // ReadMsgFromClient 存储客户端发送的消息 @@ -139,11 +141,13 @@ func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) { //1 存储详细聊天记录list if err = SetMessageDetail(jxMsg, vendorID, elmAppID); err != nil { - return + globals.SugarLogger.Debugf("ReadMsgFromClient SetMessageDetail err:=%v\n", err) + //return } //2 存储展示列表时单条数据 if err = SetUserList(jxMsg, userList, vendorID, elmAppID); err != nil { - return + globals.SugarLogger.Debugf("ReadMsgFromClient SetUserList err:=%v\n", err) + //return } } @@ -190,16 +194,19 @@ func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) { //1 存储详细聊天记录list if err = SetMessageDetail(jxMsg, vendorID, elmAppID); err != nil { - return + globals.SugarLogger.Debugf("ReadMsgFromVendor SetMessageDetail err:=%v\n", err) + //return } //2 存储展示列表时单条数据 if err = SetUserList(jxMsg, userList, vendorID, elmAppID); err != nil { - return + globals.SugarLogger.Debugf("ReadMsgFromVendor SetUserList err:=%v\n", err) + //return } //3 cid推送新消息 err = PushMsgByCid(vendorStoreID, vendorID) //4 长链接通知给客户端 ToClientChan <- clientInfo{Code: SuccessCode, Msg: fmt.Sprintf("%v", err), Data: jxMsg} + return } // PushMsgByCid 通过cid push用户 diff --git a/business/partner/purchase/im/im_model.go b/business/partner/purchase/im/im_model.go index d55b2a678..e4806a633 100644 --- a/business/partner/purchase/im/im_model.go +++ b/business/partner/purchase/im/im_model.go @@ -177,7 +177,7 @@ func Render(conn *websocket.Conn, messageId string, code int, message string, da }) } -func ClientRender(w http.ResponseWriter, code int, msg string, data interface{}) (str string) { +func ClientRender(code int, msg string, data interface{}) (str string) { var retData RetData retData.Code = code @@ -187,6 +187,7 @@ func ClientRender(w http.ResponseWriter, code int, msg string, data interface{}) retJson, _ := json.Marshal(retData) str = string(retJson) + var w http.ResponseWriter w.Header().Set("Content-Type", "application/json; charset=utf-8") _, _ = io.WriteString(w, str) return diff --git a/business/partner/purchase/im/im_server.go b/business/partner/purchase/im/im_server.go index 0176ad2ac..360a54df9 100644 --- a/business/partner/purchase/im/im_server.go +++ b/business/partner/purchase/im/im_server.go @@ -16,11 +16,8 @@ func Init() { //初始化 ToClientChan = make(chan clientInfo, 1000) //写入全局变量 - //Default() - Setup() //建立长链接 - //StartWebSocket(res, req) go Send([]byte(HeartCheckMsg)) //启动定时器 @@ -51,7 +48,8 @@ func Run(w http.ResponseWriter, r *http.Request) { //设置读取消息大小上线 conn.SetReadLimit(maxMessageSize) - clientID := r.FormValue("clientId") + //clientID := r.FormValue("clientId") + clientID := r.Header.Get("Clientid") clientSocket := NewClient(clientID, conn) //读取客户端消息 @@ -164,6 +162,7 @@ func (c *Client) Read() { } } else { SendToVendor(msg) + return } } }()