diff --git a/handler/im.go b/handler/im.go index cce9bc3..10c2510 100644 --- a/handler/im.go +++ b/handler/im.go @@ -107,6 +107,7 @@ func subscribeAndHandleIMMessages(ws *websocket.Conn, userId int) { //defer ticker.Stop() var sessionID uint + sessionID = 0 //接收客户端消息,发送消息 done := make(chan struct{}) @@ -124,7 +125,7 @@ func subscribeAndHandleIMMessages(ws *websocket.Conn, userId int) { if err1 != nil { log.Println("Error parsing JSON:", err1) } - err = doReceiveGenChatMessage(userId, sessionID, &data) + err = doReceiveGenChatMessage(userId, &sessionID, &data) if err != nil { log.Println("do receive gen chat message error:", err) return @@ -182,12 +183,12 @@ func subscribeAndHandleIMMessages(ws *websocket.Conn, userId int) { } -func doReceiveGenChatMessage(userId int, sessionID uint, data *proto.WSMessageReq) error { +func doReceiveGenChatMessage(userId int, sessionID *uint, data *proto.WSMessageReq) error { var err error chanel := "user_" + strconv.Itoa(userId) + "_ai_chat_msg" - if sessionID == 0 { + if *sessionID == 0 { //创建会话 - err, sessionID = service.CreateSession(userId, data.Msg) + err, *sessionID = service.CreateSession(userId, data.Msg) log.Println("create session id:", sessionID) if err != nil { log.Println("Create session error:", err) @@ -210,12 +211,12 @@ func doReceiveGenChatMessage(userId int, sessionID uint, data *proto.WSMessageRe var userMsgID uint //将消息存入数据库 - err, userMsgID = service.CreateMessage(proto.UserAndModelMsgType, int(sessionID), userId, int(model.ID), data.Msg, proto.MsgHasRead) + err, userMsgID = service.CreateMessage(proto.UserAndModelMsgType, int(*sessionID), userId, int(model.ID), data.Msg, proto.MsgHasRead) log.Println("create user message id:", userMsgID) if err != nil { return err } //机器人id为2,消息类型为1,状态为1 //需要后续处理 - err, _ = service.WSReceiveMessageService(userId, int(sessionID), chanel, *data, model, modelParam) + err, _ = service.WSReceiveMessageService(userId, int(*sessionID), chanel, *data, model, modelParam) return err }