Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: testing program that simulates various scenarios of sending messages. #593

Merged
merged 345 commits into from
Jul 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
345 commits
Select commit Hold shift + click to select a range
ce1f5ca
fix: user goroutine did not exit when ws dial because of token invali…
FGadvancer Aug 14, 2023
cb75845
fix: err message update
FGadvancer Aug 15, 2023
10d901a
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 15, 2023
55e6941
test: panic recover
FGadvancer Aug 15, 2023
f956426
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 15, 2023
ad20641
fix: avoid panic when local don't have message
FGadvancer Aug 16, 2023
1e166fd
test: test args change
FGadvancer Aug 16, 2023
177effd
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 17, 2023
0b3e17e
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 17, 2023
5494f81
fix: some messages seq is zero,filter this message and print exceptio…
FGadvancer Aug 17, 2023
86935e3
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 18, 2023
80c5959
fix: user online status pb change
FGadvancer Aug 18, 2023
97b70fd
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 18, 2023
6dbad3d
Merge remote-tracking branch 'upstream/main' into main
FGadvancer Aug 20, 2023
543bbe8
Merge remote-tracking branch 'origin/main' into main
FGadvancer Aug 20, 2023
96a06f7
test: add sdk user send message
FGadvancer Aug 21, 2023
ec0e688
Merge branch 'main' into test-main
FGadvancer Aug 21, 2023
c8a876a
test: add sdk user send message
FGadvancer Aug 23, 2023
2bc6233
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 23, 2023
1d7defb
Merge branch 'test-main'
FGadvancer Aug 23, 2023
bb3c7a1
fix: sync conversation panic when some groups deleted in server that …
FGadvancer Aug 23, 2023
98cd5bb
fix: sdk trigger token expired callback
FGadvancer Aug 25, 2023
0de8cf4
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 25, 2023
d57b5a3
fix: sdk remove group sync concurrent,maybe cause sync group members …
FGadvancer Aug 28, 2023
cf24803
fix: do not update group message when get user info.
FGadvancer Aug 29, 2023
1991e2b
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 30, 2023
44c3ab9
fix: private chat notification update.
FGadvancer Aug 30, 2023
b34f2d0
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 31, 2023
e2e8dc6
fix: change the conversation to synchronous retrieval.
FGadvancer Aug 31, 2023
8d55fcb
fix: split pull message.
FGadvancer Aug 31, 2023
cea791c
Merge remote-tracking branch 'upstream/main'
FGadvancer Sep 1, 2023
5e77b09
fix: user status online add to main func.
FGadvancer Sep 1, 2023
4c146ba
fix: pull notifications.
FGadvancer Sep 1, 2023
16373a0
Merge branch 'main' into main
FGadvancer Sep 1, 2023
2a9843b
fix: pull notifications.
FGadvancer Sep 1, 2023
84850ef
Merge remote-tracking branch 'origin/main' into main
FGadvancer Sep 1, 2023
c2a29db
Merge branch 'main' into main
FGadvancer Sep 2, 2023
6f01a29
fix: message update latest icon and name when first sync message.
FGadvancer Sep 2, 2023
7920209
Merge remote-tracking branch 'upstream/main' into main
FGadvancer Sep 2, 2023
6e6cbaf
Merge remote-tracking branch 'origin/main' into main
FGadvancer Sep 2, 2023
f374bd3
fix: message update latest icon and name when first sync message.
FGadvancer Sep 2, 2023
fd3c7fb
fix: message update latest icon and name when first sync message.
FGadvancer Sep 2, 2023
e8b2ef0
Merge branch 'main' into main
FGadvancer Sep 2, 2023
98e9547
fix: message update latest icon and name when first sync message.
FGadvancer Sep 2, 2023
6da56e4
Merge branch 'main' into main
FGadvancer Sep 2, 2023
456cfc6
Merge remote-tracking branch 'upstream/main'
FGadvancer Sep 3, 2023
db63cfd
fix: stranger user model add wasm set func.
FGadvancer Sep 3, 2023
dc55859
fix: stranger user model add wasm set func.
FGadvancer Sep 3, 2023
237834d
Merge remote-tracking branch 'upstream/main'
FGadvancer Sep 3, 2023
c858d4c
tes: change num of sender.
FGadvancer Sep 5, 2023
595fe68
fix: create a group, group members greater than 5000 report an error
withchao Sep 6, 2023
5af95ce
Merge remote-tracking branch 'upstream/main'
FGadvancer Sep 7, 2023
91b01d9
fix: remove stranger func in user model.
FGadvancer Sep 7, 2023
8d35162
Merge remote-tracking branch 'upstream/main'
FGadvancer Sep 7, 2023
d12962b
refactor: change project module name.
FGadvancer Sep 7, 2023
5e5d572
feat: add doc generator.
FGadvancer Sep 8, 2023
9cdf0ec
Merge remote-tracking branch 'upstream/main'
FGadvancer Sep 8, 2023
bb04e8a
tes: test file update.
FGadvancer Sep 8, 2023
bfc443f
test: pressure test file update.
FGadvancer Sep 8, 2023
f3119e5
Merge remote-tracking branch 'upstream/main'
FGadvancer Sep 8, 2023
8c36b2b
test: remove get newest seq for pressure test.
FGadvancer Sep 8, 2023
a477cd7
test: remove get newest seq for pressure test.
FGadvancer Sep 8, 2023
9e54549
test: remove get newest seq for pressure test.
FGadvancer Sep 8, 2023
83177da
test: change ws heartbeat.
FGadvancer Sep 8, 2023
720d3a1
test: change ws heartbeat.
FGadvancer Sep 8, 2023
05aaac5
test: change ws heartbeat.
FGadvancer Sep 8, 2023
fe69331
test: change ws heartbeat.
FGadvancer Sep 8, 2023
eae5363
test: change ws heartbeat.
FGadvancer Sep 8, 2023
602af98
test: change ws heartbeat.
FGadvancer Sep 8, 2023
944e148
test: change ws heartbeat.
FGadvancer Sep 8, 2023
8a83887
fix: parser update.
FGadvancer Sep 10, 2023
157ce43
fix: parse get right arg's decl location.
FGadvancer Sep 10, 2023
6490370
test: file path update.
FGadvancer Sep 11, 2023
4214c0b
fix: repeated trigger conversation changed.
FGadvancer Sep 14, 2023
4266088
Merge remote-tracking branch 'upstream/main'
FGadvancer Oct 7, 2023
d9aae39
Merge remote-tracking branch 'upstream/main'
FGadvancer Oct 9, 2023
eb0eff6
fix: message unread count remove when user not in group.
FGadvancer Oct 10, 2023
a600802
feat: add parse source code of go to doc.
FGadvancer Oct 29, 2023
a5dd531
feat: add parse source code of go to doc.
FGadvancer Oct 29, 2023
5695693
fix: parse file update.
FGadvancer Nov 1, 2023
48a501f
fix: parse file update.
FGadvancer Nov 1, 2023
00facbb
fix: ping pong handler remove.
FGadvancer Nov 14, 2023
1bb09db
fix: pressure test.
FGadvancer Nov 20, 2023
3dbf09f
fix: single message test.
FGadvancer Nov 24, 2023
492b8c2
fix: single message test.
FGadvancer Nov 24, 2023
b1e71b3
fix: single message test.
FGadvancer Nov 24, 2023
5885357
fix: single message test.
FGadvancer Nov 24, 2023
ae5c4fe
fix: single message test.
FGadvancer Nov 24, 2023
8114b0d
fix: single message test.
FGadvancer Nov 24, 2023
aca68cd
fix: single message test.
FGadvancer Nov 24, 2023
57b5363
fix: single message test.
FGadvancer Nov 24, 2023
5498cf2
fix: single message test.
FGadvancer Nov 24, 2023
dc4a971
fix: single message test.
FGadvancer Nov 24, 2023
442c243
fix: single message test.
FGadvancer Nov 24, 2023
1541b66
fix: single message test.
FGadvancer Nov 24, 2023
3058eef
fix: single message test.
FGadvancer Nov 24, 2023
e058dc7
fix: single message test.
FGadvancer Nov 24, 2023
6fca3f5
fix: single message test.
FGadvancer Nov 24, 2023
b0c3970
fix: single message test.
FGadvancer Nov 24, 2023
e105f02
fix: single message test.
FGadvancer Nov 27, 2023
98d3e00
fix: single message test.
FGadvancer Nov 27, 2023
59301b4
fix: single message test.
FGadvancer Nov 27, 2023
1032c1e
fix: single message test.
FGadvancer Nov 27, 2023
4b0aa06
fix: single message test.
FGadvancer Nov 27, 2023
b76bbba
fix: single message test.
FGadvancer Nov 28, 2023
3f25a58
fix: single message test.
FGadvancer Nov 28, 2023
6c041d4
fix: single message test.
FGadvancer Nov 28, 2023
848791e
fix: single message test.
FGadvancer Nov 28, 2023
b6f96cf
fix: single message test.
FGadvancer Nov 28, 2023
37b47dd
fix: single message test.
FGadvancer Nov 28, 2023
5b5a56c
fix: single message test.
FGadvancer Nov 29, 2023
b558257
fix: single message test.
FGadvancer Nov 29, 2023
bb84626
fix: single message test.
FGadvancer Nov 29, 2023
1fba9b2
fix: single message test.
FGadvancer Nov 29, 2023
8d62d73
fix: single message test.
FGadvancer Nov 29, 2023
24a6f73
fix: single message test.
FGadvancer Nov 29, 2023
8822938
fix: msg test.
FGadvancer Nov 29, 2023
d79e5e2
fix: add register message.
FGadvancer Nov 29, 2023
343a9fd
fix: single message test.
FGadvancer Nov 30, 2023
bf2311a
fix: single message test.
FGadvancer Nov 30, 2023
25dc538
fix: single message test.
FGadvancer Nov 30, 2023
617babf
fix: single message test.
FGadvancer Nov 30, 2023
0c3812e
fix: single message test.
FGadvancer Nov 30, 2023
91efaf5
fix: single message test.
FGadvancer Nov 30, 2023
f8285e2
fix: add args
FGadvancer Nov 30, 2023
e09c926
fix: single message test.
FGadvancer Dec 1, 2023
f3ec5d0
fix: single message test.
FGadvancer Dec 4, 2023
da82f49
fix: single message test.
FGadvancer Dec 4, 2023
b4a204e
fix: single message test.
FGadvancer Dec 4, 2023
ac637eb
fix: single message test.
FGadvancer Dec 4, 2023
edaba61
fix: single message test.
FGadvancer Dec 4, 2023
d034187
fix: single message test.
FGadvancer Dec 4, 2023
c8d640c
fix: single message test.
FGadvancer Dec 4, 2023
87d6be5
fix: single message test.
FGadvancer Dec 4, 2023
276a9a4
fix: pressure test add.
FGadvancer Dec 4, 2023
85c53bb
fix: test file.
FGadvancer Dec 4, 2023
de7606d
fix: send message concurrent.
FGadvancer Dec 4, 2023
9c3bf9b
fix: single message test.
FGadvancer Dec 4, 2023
9166b4a
fix: add pressure.
FGadvancer Dec 4, 2023
033a44e
fix: single message test.
FGadvancer Dec 4, 2023
44259b1
fix: restore message.
FGadvancer Dec 4, 2023
fb8a814
fix: pressure message.
FGadvancer Dec 4, 2023
900c461
fix: add timer.
FGadvancer Dec 4, 2023
332bedd
fix: message update.
FGadvancer Dec 4, 2023
dbe15aa
fix: single message test.
FGadvancer Dec 5, 2023
b87c1e0
fix: single message test.
FGadvancer Dec 5, 2023
0edc73b
fix: single message test.
FGadvancer Dec 5, 2023
5291af3
fix: single message test.
FGadvancer Dec 5, 2023
4708036
fix: single message test.
FGadvancer Dec 5, 2023
afb4f20
fix: single message test.
FGadvancer Dec 5, 2023
16954ca
fix: single message test.
FGadvancer Dec 5, 2023
3bcc1ff
fix: single message test.
FGadvancer Dec 5, 2023
18e257e
fix: single message test.
FGadvancer Dec 5, 2023
3b3fc55
fix: single message test.
FGadvancer Dec 5, 2023
8668e9f
fix: single message test.
FGadvancer Dec 5, 2023
288465d
fix: single message test.
FGadvancer Dec 5, 2023
245f0ab
fix: single message test.
FGadvancer Dec 5, 2023
c04c831
fix: single message test.
FGadvancer Dec 5, 2023
6236c9f
fix: single message test.
FGadvancer Dec 5, 2023
01b9d98
fix: single message test.
FGadvancer Dec 5, 2023
6206d30
fix: single message test.
FGadvancer Dec 6, 2023
840c7ed
fix: single message test.
FGadvancer Dec 6, 2023
3d639ba
fix: single message test.
FGadvancer Dec 6, 2023
fc5b886
fix: single message test.
FGadvancer Dec 6, 2023
29d1219
fix: single message test.
FGadvancer Dec 6, 2023
fd78835
fix: single message test.
FGadvancer Dec 6, 2023
8508b69
fix:add range login.
FGadvancer Dec 6, 2023
33c3a5c
fix: single message test.
FGadvancer Dec 8, 2023
29a7360
fix: single message test.
FGadvancer Dec 8, 2023
070599d
fix: single message test.
FGadvancer Dec 8, 2023
1f99053
fix: single message test.
FGadvancer Dec 8, 2023
9615675
fix: single message test.
FGadvancer Dec 8, 2023
e8a8479
fix:update.
FGadvancer Dec 9, 2023
ac1d327
fix: update.
FGadvancer Dec 9, 2023
95db663
fix: update.
FGadvancer Dec 9, 2023
7b2a8a3
fix:update
FGadvancer Dec 9, 2023
0c3954b
fix: update
FGadvancer Dec 9, 2023
05ac9be
fix: update
FGadvancer Dec 9, 2023
be61646
fix: update.
FGadvancer Dec 9, 2023
735238a
fix: listener add empty implement avoid panic.
FGadvancer Dec 12, 2023
0d3d674
fix: listener add empty implement avoid panic.
FGadvancer Dec 12, 2023
64fc38c
fix: add wait time.
FGadvancer Dec 12, 2023
e292958
fix: message
FGadvancer Dec 12, 2023
a6902c5
fix: listener add empty implement avoid panic.
FGadvancer Dec 13, 2023
6834b6c
fix: listener add empty implement avoid panic.
FGadvancer Dec 13, 2023
c1eff33
fix: listener add empty implement avoid panic.
FGadvancer Dec 13, 2023
ac4817c
fix: update batchMsgListener func.
FGadvancer Dec 13, 2023
36c94c1
fix: listener add empty implement avoid panic.
FGadvancer Dec 14, 2023
e680c13
fix: listener add empty implement avoid panic.
FGadvancer Dec 14, 2023
816ed5c
fix: listener add empty implement avoid panic.
FGadvancer Dec 14, 2023
8d1cddf
fix: listener add empty implement avoid panic.
FGadvancer Dec 14, 2023
6b41751
fix: listener add empty implement avoid panic.
FGadvancer Dec 15, 2023
b6ee706
fix: listener add empty implement avoid panic.
FGadvancer Dec 15, 2023
6963576
fix: listener add empty implement avoid panic.
FGadvancer Dec 15, 2023
1efa0ba
fix: listener add empty implement avoid panic.
FGadvancer Dec 15, 2023
26fc897
fix: listener add empty implement avoid panic.
FGadvancer Dec 15, 2023
5a1f663
chore: config update.
FGadvancer Dec 18, 2023
b976697
chore:do not send message.
FGadvancer Dec 18, 2023
671878c
chore:add args.
FGadvancer Dec 18, 2023
83eac35
chore:fix bug.
FGadvancer Dec 18, 2023
3f832ce
chore: fix bool.
FGadvancer Dec 18, 2023
db5b459
chore: restore.
FGadvancer Dec 18, 2023
02605aa
fix: listener add empty implement avoid panic.
FGadvancer Dec 19, 2023
0fd26fa
fix: listener add empty implement avoid panic.
FGadvancer Dec 19, 2023
84827dd
fix: listener add empty implement avoid panic.
FGadvancer Dec 19, 2023
fff6b25
fix: listener add empty implement avoid panic.
FGadvancer Dec 19, 2023
22c9a60
fix: add sync pool to reduce cpu and memory overhead.
FGadvancer Dec 20, 2023
3ac3e54
fix: add sync pool to reduce cpu and memory overhead.
FGadvancer Dec 20, 2023
b30588c
fix: add sync pool to reduce cpu and memory overhead.
FGadvancer Dec 20, 2023
a321594
fix: add sync pool to reduce cpu and memory overhead.
FGadvancer Dec 20, 2023
1513359
fix: conversation's latestMsg struct unmarshal err type.
FGadvancer Dec 25, 2023
31435a2
Merge remote-tracking branch 'upstream/main'
FGadvancer Dec 25, 2023
a0c0011
fix: conversation's latestMsg struct unmarshal err type.
FGadvancer Dec 26, 2023
870bc12
fix: conversation's latestMsg struct unmarshal err type.
FGadvancer Dec 26, 2023
9ffb758
fix: conversation's latestMsg struct unmarshal err type.
FGadvancer Dec 26, 2023
f0ca8b3
feat: merge open source code into main.
FGadvancer Jan 23, 2024
adf47b7
feat: msg test update.
FGadvancer Jan 25, 2024
6069c26
feat: msg test update.
FGadvancer Jan 25, 2024
197c0e9
feat: msg test update.
FGadvancer Jan 25, 2024
c4c47e2
feat: msg test update.
FGadvancer Jan 25, 2024
2c1c5f9
feat: msg test update.
FGadvancer Jan 25, 2024
4b54367
feat: msg test update.
FGadvancer Jan 25, 2024
bb3e92d
feat: msg test update.
FGadvancer Jan 25, 2024
487748e
feat: msg test update.
FGadvancer Jan 25, 2024
67aa94b
Merge remote-tracking branch 'upstream/main'
FGadvancer Jan 26, 2024
2983e7d
fix: create group add error info.
FGadvancer Jan 28, 2024
328e9e7
fix: create group add error info.
FGadvancer Jan 28, 2024
9c957e1
fix: create group add error info.
FGadvancer Jan 28, 2024
943fc33
fix: create group add error info.
FGadvancer Jan 28, 2024
156193c
test: ip change.
FGadvancer Jan 31, 2024
c4b5c2a
test: ip change.
FGadvancer Jan 31, 2024
09afaa2
test: ip change.
FGadvancer Jan 31, 2024
e5ccc46
feat: group add online rate.
FGadvancer Feb 4, 2024
2e956c3
feat: group add online rate.
FGadvancer Feb 5, 2024
e64dbcb
feat: group add online rate.
FGadvancer Feb 5, 2024
d7199e9
feat: group add online rate.
FGadvancer Feb 5, 2024
6b1262d
feat: group add online rate.
FGadvancer Feb 5, 2024
f23f91a
feat: group add online rate.
FGadvancer Feb 5, 2024
2898b70
feat: group add online rate.
FGadvancer Feb 6, 2024
dd770af
fix: merge open source code into main.
FGadvancer Jul 3, 2024
efdcde0
refactor: remove c wrapper.
FGadvancer Jul 3, 2024
6837d15
feat: add incremental synchronization for common conversation attribu…
FGadvancer Jul 15, 2024
9f7c13c
feat: add incremental synchronization for common conversation attribu…
FGadvancer Jul 15, 2024
d81ca21
feat: add incremental synchronization for common conversation attribu…
FGadvancer Jul 15, 2024
73f27ad
feat: add incremental synchronization for common conversation attribu…
FGadvancer Jul 15, 2024
ce35f09
feat: add incremental synchronization for common conversation attribu…
FGadvancer Jul 15, 2024
d770d74
Merge remote-tracking branch 'upstream/main'
FGadvancer Jul 15, 2024
0cb9e36
feat: add incremental synchronization for common conversation attribu…
FGadvancer Jul 15, 2024
a64114e
refactor: remove some functions.
FGadvancer Jul 15, 2024
2b60136
refactor: remove some functions.
FGadvancer Jul 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
17 changes: 0 additions & 17 deletions internal/conversation_msg/conversation_notification.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,23 +168,6 @@ func (c *Conversation) doNotificationNew(c2v common.Cmd2Value) {

}

func (c *Conversation) doDeleteConversation(c2v common.Cmd2Value) {
node := c2v.Value.(common.DeleteConNode)
ctx := c2v.Ctx
// Mark messages related to this conversation for deletion
err := c.db.UpdateMessageStatusBySourceID(context.Background(), node.SourceID, constant.MsgStatusHasDeleted, int32(node.SessionType))
if err != nil {
log.ZError(ctx, "setMessageStatusBySourceID", err)
return
}
// Reset the session information, empty session
err = c.db.ResetConversation(ctx, node.ConversationID)
if err != nil {
log.ZError(ctx, "ResetConversation err:", err)
}
c.doUpdateConversation(common.Cmd2Value{Value: common.UpdateConNode{"", constant.TotalUnreadMessageChanged, ""}})
}

func (c *Conversation) getConversationLatestMsgClientID(latestMsg string) string {
msg := &sdk_struct.MsgStruct{}
if err := json.Unmarshal([]byte(latestMsg), msg); err != nil {
Expand Down
1 change: 1 addition & 0 deletions internal/conversation_msg/message_check.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package conversation_msg
import (
"context"
"errors"

"github.com/openimsdk/openim-sdk-core/v3/pkg/constant"
"github.com/openimsdk/openim-sdk-core/v3/pkg/db/model_struct"
sdk "github.com/openimsdk/openim-sdk-core/v3/pkg/sdk_params_callback"
Expand Down
1 change: 0 additions & 1 deletion internal/conversation_msg/read_drawing.go
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,6 @@ func (c *Conversation) doUnreadCount(ctx context.Context, conversation *model_st
log.ZError(ctx, "UpdateColumnsConversation err", err, "conversationID", conversation.ConversationID)
}
}

c.doUpdateConversation(common.Cmd2Value{Value: common.UpdateConNode{ConID: conversation.ConversationID, Action: constant.ConChange, Args: []string{conversation.ConversationID}}})
c.doUpdateConversation(common.Cmd2Value{Value: common.UpdateConNode{Action: constant.TotalUnreadMessageChanged}})

Expand Down
5 changes: 5 additions & 0 deletions internal/conversation_msg/sdk.go
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,11 @@ func (c *Conversation) getConversationIDBySessionType(sourceID string, sessionTy
func (c *Conversation) GetConversationIDBySessionType(_ context.Context, sourceID string, sessionType int) string {
return c.getConversationIDBySessionType(sourceID, sessionType)
}

//this is a test file
/**
his is a test file
*/
func (c *Conversation) SendMessage(ctx context.Context, s *sdk_struct.MsgStruct, recvID, groupID string, p *sdkws.OfflinePushInfo, isOnlineOnly bool) (*sdk_struct.MsgStruct, error) {
filepathExt := func(name ...string) string {
for _, path := range name {
Expand Down
45 changes: 45 additions & 0 deletions internal/interaction/compressor.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,22 @@ package interaction
import (
"bytes"
"compress/gzip"
"errors"
"github.com/openimsdk/openim-sdk-core/v3/pkg/utils"
"io"
"sync"
)

var (
gzipWriterPool = sync.Pool{New: func() any { return gzip.NewWriter(nil) }}
gzipReaderPool = sync.Pool{New: func() any { return new(gzip.Reader) }}
)

type Compressor interface {
Compress(rawData []byte) ([]byte, error)
CompressWithPool(rawData []byte) ([]byte, error)
DeCompress(compressedData []byte) ([]byte, error)
DecompressWithPool(compressedData []byte) ([]byte, error)
}

type GzipCompressor struct {
Expand All @@ -46,6 +55,22 @@ func (g *GzipCompressor) Compress(rawData []byte) ([]byte, error) {
return gzipBuffer.Bytes(), nil
}

func (g *GzipCompressor) CompressWithPool(rawData []byte) ([]byte, error) {
gz := gzipWriterPool.Get().(*gzip.Writer)
defer gzipWriterPool.Put(gz)

gzipBuffer := bytes.Buffer{}
gz.Reset(&gzipBuffer)

if _, err := gz.Write(rawData); err != nil {
return nil, utils.Wrap(err, "")
}
if err := gz.Close(); err != nil {
return nil, utils.Wrap(err, "")
}
return gzipBuffer.Bytes(), nil
}

func (g *GzipCompressor) DeCompress(compressedData []byte) ([]byte, error) {
buff := bytes.NewBuffer(compressedData)
reader, err := gzip.NewReader(buff)
Expand All @@ -59,3 +84,23 @@ func (g *GzipCompressor) DeCompress(compressedData []byte) ([]byte, error) {
_ = reader.Close()
return compressedData, nil
}

func (g *GzipCompressor) DecompressWithPool(compressedData []byte) ([]byte, error) {
reader := gzipReaderPool.Get().(*gzip.Reader)
if reader == nil {
return nil, errors.New("NewReader failed")
}
defer gzipReaderPool.Put(reader)

err := reader.Reset(bytes.NewReader(compressedData))
if err != nil {
return nil, utils.Wrap(err, "NewReader failed")
}

compressedData, err = io.ReadAll(reader)
if err != nil {
return nil, utils.Wrap(err, "ReadAll failed")
}
_ = reader.Close()
return compressedData, nil
}
38 changes: 21 additions & 17 deletions internal/interaction/long_conn_mgr.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ func NewLongConnMgr(ctx context.Context, listener open_im_sdk_callback.OnConnLis
return l
}
func (c *LongConnMgr) Run(ctx context.Context) {
//fmt.Println(mcontext.GetOperationID(ctx), "login run", string(debug.Stack()))
go c.readPump(ctx)
go c.writePump(ctx)
go c.heartbeat(ctx)
Expand Down Expand Up @@ -176,7 +175,6 @@ func (c *LongConnMgr) readPump(ctx context.Context) {
log.ZWarn(c.ctx, "readPump closed", c.closedErr)
}()
connNum := 0
//c.conn.SetPongHandler(function(string) error { c.conn.SetReadDeadline(time.Now().Add(pongWait)); return nil })
for {
ctx = ccontext.WithOperationID(ctx, utils.OperationIDGenerator())
needRecon, err := c.reConn(ctx, &connNum)
Expand All @@ -193,11 +191,6 @@ func (c *LongConnMgr) readPump(ctx context.Context) {
_ = c.conn.SetReadDeadline(pongWait)
messageType, message, err := c.conn.ReadMessage()
if err != nil {
//if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) {
// log.Printf("error: %v", err)
//}
//break
//c.closedErr = err
log.ZError(c.ctx, "readMessage err", err, "goroutine ID:", getGoroutineID())
_ = c.close()
continue
Expand All @@ -212,9 +205,6 @@ func (c *LongConnMgr) readPump(ctx context.Context) {
case MessageText:
c.closedErr = ErrNotSupportMessageProtocol
return
//case PingMessage:
// err := c.writePongMsg()
// log.ZError(c.ctx, "writePongMsg", err)
case CloseMessage:
c.closedErr = ErrClientClosed
return
Expand Down Expand Up @@ -290,9 +280,21 @@ func (c *LongConnMgr) heartbeat(ctx context.Context) {
log.ZInfo(ctx, "heartbeat done sdk logout.....")
return
case <-c.heartbeatCh:
c.sendPingToServer(ctx)
c.retrieveMaxSeq(ctx)
case <-ticker.C:
c.sendPingToServer(ctx)
c.sendPingMessage(ctx)
}
}

}
func (c *LongConnMgr) sendPingMessage(ctx context.Context) {
c.connWrite.Lock()
defer c.connWrite.Unlock()
log.ZInfo(ctx, "ping message tart", "goroutine ID:", getGoroutineID())
if c.IsConnected() {
c.conn.SetWriteDeadline(writeWait)
if err := c.conn.WriteMessage(PingMessage, nil); err != nil {
return
}
}

Expand All @@ -307,15 +309,16 @@ func getGoroutineID() int64 {
}
return id
}
func (c *LongConnMgr) sendPingToServer(ctx context.Context) {

func (c *LongConnMgr) retrieveMaxSeq(ctx context.Context) {
if c.conn == nil {
return
}
var m sdkws.GetMaxSeqReq
m.UserID = ccontext.Info(ctx).UserID()
opID := utils.OperationIDGenerator()
sCtx := ccontext.WithOperationID(c.ctx, opID)
log.ZInfo(sCtx, "ping and getMaxSeq start", "goroutine ID:", getGoroutineID())
log.ZInfo(sCtx, "retrieveMaxSeq start", "goroutine ID:", getGoroutineID())
data, err := proto.Marshal(&m)
if err != nil {
log.ZError(sCtx, "proto.Marshal", err)
Expand All @@ -335,7 +338,7 @@ func (c *LongConnMgr) sendPingToServer(ctx context.Context) {
return
} else {
if resp.ErrCode != 0 {
log.ZError(sCtx, "getMaxSeq failed", nil, "errCode:", resp.ErrCode, "errMsg:", resp.ErrMsg)
log.ZError(sCtx, "retrieveMaxSeq failed", nil, "errCode:", resp.ErrCode, "errMsg:", resp.ErrMsg)
}
var wsSeqResp sdkws.GetMaxSeqResp
err = proto.Unmarshal(resp.Data, &wsSeqResp)
Expand Down Expand Up @@ -400,7 +403,7 @@ func (c *LongConnMgr) writeBinaryMsg(req GeneralWsReq) error {
}
_ = c.conn.SetWriteDeadline(writeWait)
if c.IsCompression {
resultBuf, compressErr := c.compressor.Compress(encodeBuf)
resultBuf, compressErr := c.compressor.CompressWithPool(encodeBuf)
if compressErr != nil {
return compressErr
}
Expand All @@ -423,7 +426,7 @@ func (c *LongConnMgr) close() error {
func (c *LongConnMgr) handleMessage(message []byte) error {
if c.IsCompression {
var decompressErr error
message, decompressErr = c.compressor.DeCompress(message)
message, decompressErr = c.compressor.DecompressWithPool(message)
if decompressErr != nil {
log.ZError(c.ctx, "DeCompress failed", decompressErr, message)
return sdkerrs.ErrMsgDeCompression
Expand Down Expand Up @@ -547,6 +550,7 @@ func (c *LongConnMgr) reConn(ctx context.Context, num *int) (needRecon bool, err
c.ctx = newContext(c.conn.LocalAddr())
c.ctx = context.WithValue(ctx, "ConnContext", c.ctx)
c.SetConnectionStatus(Connected)
c.conn.SetPongHandler(c.pongHandler)
*num++
log.ZInfo(c.ctx, "long conn establish success", "localAddr", c.conn.LocalAddr(), "connNum", *num)
c.reconnectStrategy.Reset()
Expand Down
40 changes: 0 additions & 40 deletions internal/work_moments/sdk.go

This file was deleted.

78 changes: 0 additions & 78 deletions internal/work_moments/work_moments.go

This file was deleted.

6 changes: 3 additions & 3 deletions msgtest/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import (

// system
var (
TESTIP = "59.36.173.89"
APIADDR = fmt.Sprintf("http://%v:10002", TESTIP)
WSADDR = fmt.Sprintf("ws://%v:10001", TESTIP)
TESTIP = "127.0.0.1"
APIADDR = fmt.Sprintf("http://%v:20002", TESTIP)
WSADDR = fmt.Sprintf("ws://%v:20001", TESTIP)
SECRET = "openIM123"
MANAGERUSERID = "openIMAdmin"

Expand Down
Loading
Loading