From 3239dfe0a0484e570ee588af38d59474ea6af3b9 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 24 Mar 2023 17:34:16 +0800 Subject: [PATCH 1/2] ws update --- internal/msggateway/client.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/msggateway/client.go b/internal/msggateway/client.go index 78062441d..5ea9d48c6 100644 --- a/internal/msggateway/client.go +++ b/internal/msggateway/client.go @@ -18,6 +18,7 @@ import ( var ErrConnClosed = errors.New("conn has closed") var ErrNotSupportMessageProtocol = errors.New("not support message protocol") var ErrClientClosed = errors.New("client actively close the connection") +var ErrPanic = errors.New("panic error") const ( // MessageText is for UTF-8 encoded text messages like JSON. @@ -82,6 +83,7 @@ func (c *Client) pongHandler(_ string) error { func (c *Client) readMessage() { defer func() { if r := recover(); r != nil { + c.closedErr = ErrPanic fmt.Println("socket have panic err:", r, string(debug.Stack())) } c.close() @@ -95,7 +97,7 @@ func (c *Client) readMessage() { c.closedErr = returnErr return } - log.ZDebug(c.ctx, "readMessage", "messageType", messageType, "message", string(message)) + log.ZDebug(c.ctx, "readMessage", "messageType", messageType) if c.closed == true { //连接刚置位已经关闭,但是协程还没退出的场景 c.closedErr = ErrConnClosed return From 8a073a9dfb9fcfc8fc59a997bb7b342e6327e976 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 24 Mar 2023 17:34:33 +0800 Subject: [PATCH 2/2] conversation --- internal/rpc/group/callback.go | 3 ++- pkg/common/db/controller/conversation.go | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/internal/rpc/group/callback.go b/internal/rpc/group/callback.go index 1a77d1e18..c66871f01 100644 --- a/internal/rpc/group/callback.go +++ b/internal/rpc/group/callback.go @@ -2,6 +2,8 @@ package group import ( "context" + "time" + "github.com/OpenIMSDK/Open-IM-Server/pkg/apistruct" "github.com/OpenIMSDK/Open-IM-Server/pkg/callbackstruct" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/config" @@ -12,7 +14,6 @@ import ( "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/group" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/wrapperspb" "github.com/OpenIMSDK/Open-IM-Server/pkg/utils" - "time" ) func CallbackBeforeCreateGroup(ctx context.Context, req *group.CreateGroupReq) (err error) { diff --git a/pkg/common/db/controller/conversation.go b/pkg/common/db/controller/conversation.go index 5335698df..0a3b90f84 100644 --- a/pkg/common/db/controller/conversation.go +++ b/pkg/common/db/controller/conversation.go @@ -68,12 +68,16 @@ func (c *ConversationDataBase) SetUsersConversationFiledTx(ctx context.Context, temp.OwnerUserID = v cList = append(cList, temp) } - err = conversationTx.Create(ctx, cList) - if err != nil { - return err + cache := c.cache.NewCache() + if len(cList) > 0 { + err = conversationTx.Create(ctx, cList) + if err != nil { + return err + } + cache = cache.DelConversationIDs(NotUserIDs) } // clear cache - return c.cache.DelConversationIDs(NotUserIDs).DelUsersConversation(haveUserIDs, conversation.ConversationID).ExecDel(ctx) + return cache.DelUsersConversation(haveUserIDs, conversation.ConversationID).ExecDel(ctx) }) }