Compare commits
17 Commits
175bee8f2e
...
dev_gem
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b38fb66830 | ||
|
|
d6c0efdd3e | ||
|
|
a29579943a | ||
|
|
1e9993bf54 | ||
|
|
66978e90ed | ||
|
|
ccf469f446 | ||
|
|
82a5a2a494 | ||
|
|
ebebe59526 | ||
|
|
cbd94b8a43 | ||
|
|
c9c9cdb4a1 | ||
|
|
1ef1a89077 | ||
|
|
37332dd4b2 | ||
|
|
9159c34854 | ||
|
|
93e9babb57 | ||
|
|
498a726387 | ||
|
|
0d609d6eef | ||
|
|
1958dac89f |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -31,4 +31,7 @@
|
||||
*.out
|
||||
*.app
|
||||
|
||||
*.vscode
|
||||
*.vscode
|
||||
.idea/
|
||||
shared/windows/libopenimsdk.def
|
||||
shared/windows/libopenimsdk.h
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "../include/libopenimsdk.h"
|
||||
#include "libopenimsdk.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
||||
@@ -75,8 +75,20 @@ const (
|
||||
COMPLETE
|
||||
CONVERSATION_USER_INPUT_STATUS_CHANGED
|
||||
RECV_ONLINE_ONLY_MESSAGE
|
||||
NEW_RECV_MESSAGE_EDIT
|
||||
|
||||
USER_TOKEN_INVALID
|
||||
|
||||
ON_PROGRESS
|
||||
JOINED_CHANNEL_ADDED
|
||||
JOINED_CHANNEL_DELETED
|
||||
CHANNEL_MEMBER_ADDED
|
||||
CHANNEL_MEMBER_DELETED
|
||||
CHANNEL_APPLICATION_ADDED
|
||||
CHANNEL_APPLICATION_DELETED
|
||||
CHANNEL_INFO_CHANGED
|
||||
CHANNEL_DISMISSED
|
||||
CHANNEL_MEMBER_INFO_CHANGED
|
||||
CHANNEL_APPLICATION_ACCEPTED
|
||||
CHANNEL_APPLICATION_REJECTED
|
||||
)
|
||||
|
||||
164
go/export.go
164
go/export.go
@@ -174,6 +174,10 @@ func (a AdvancedMsgCallback) OnRecvOnlineOnlyMessage(message string) {
|
||||
C.Call_CB_I_S(a.cCallback, RECV_ONLINE_ONLY_MESSAGE, C.CString(message))
|
||||
}
|
||||
|
||||
func (a AdvancedMsgCallback) OnNewRecvMessageEdited(message string) {
|
||||
C.Call_CB_I_S(a.cCallback, NEW_RECV_MESSAGE_EDIT, C.CString(message))
|
||||
}
|
||||
|
||||
type BatchMessageCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
@@ -286,6 +290,58 @@ func (g GroupCallback) OnGroupApplicationRejected(groupApplication string) {
|
||||
C.Call_CB_I_S(g.cCallback, GROUP_APPLICATION_REJECTED, C.CString(groupApplication))
|
||||
}
|
||||
|
||||
type ChannelCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
|
||||
func NewChannelCallback(cCallback C.CB_I_S) *ChannelCallback {
|
||||
return &ChannelCallback{cCallback: cCallback}
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnJoinedChannelAdded(channelInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, JOINED_CHANNEL_ADDED, C.CString(channelInfo))
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnJoinedChannelDeleted(channelInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, JOINED_CHANNEL_DELETED, C.CString(channelInfo))
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnChannelMemberAdded(channelMemberInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, CHANNEL_MEMBER_ADDED, C.CString(channelMemberInfo))
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnChannelMemberDeleted(channelMemberInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, CHANNEL_MEMBER_DELETED, C.CString(channelMemberInfo))
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnChannelApplicationAdded(channelApplication string) {
|
||||
C.Call_CB_I_S(g.cCallback, CHANNEL_APPLICATION_ADDED, C.CString(channelApplication))
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnChannelApplicationDeleted(channelApplication string) {
|
||||
C.Call_CB_I_S(g.cCallback, CHANNEL_APPLICATION_DELETED, C.CString(channelApplication))
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnChannelInfoChanged(channelInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, CHANNEL_INFO_CHANGED, C.CString(channelInfo))
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnChannelDismissed(channelInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, CHANNEL_DISMISSED, C.CString(channelInfo))
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnChannelMemberInfoChanged(channelMemberInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, CHANNEL_MEMBER_INFO_CHANGED, C.CString(channelMemberInfo))
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnChannelApplicationAccepted(channelApplication string) {
|
||||
C.Call_CB_I_S(g.cCallback, CHANNEL_APPLICATION_ACCEPTED, C.CString(channelApplication))
|
||||
}
|
||||
|
||||
func (g ChannelCallback) OnChannelApplicationRejected(channelApplication string) {
|
||||
C.Call_CB_I_S(g.cCallback, CHANNEL_APPLICATION_REJECTED, C.CString(channelApplication))
|
||||
}
|
||||
|
||||
type CustomBusinessCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
@@ -440,6 +496,11 @@ func set_group_listener(cCallback C.CB_I_S) {
|
||||
open_im_sdk.SetGroupListener(NewGroupCallback(cCallback))
|
||||
}
|
||||
|
||||
//export set_channel_listener
|
||||
func set_channel_listener(cCallback C.CB_I_S) {
|
||||
open_im_sdk.SetChannelListener(NewChannelCallback(cCallback))
|
||||
}
|
||||
|
||||
//export set_conversation_listener
|
||||
func set_conversation_listener(cCallback C.CB_I_S) {
|
||||
open_im_sdk.SetConversationListener(NewConversationCallback(cCallback))
|
||||
@@ -673,6 +734,12 @@ func create_forward_message(operationID, m *C.char) *C.char {
|
||||
return C.CString(open_im_sdk.CreateForwardMessage(C.GoString(operationID), C.GoString(m)))
|
||||
}
|
||||
|
||||
//export fetch_surrounding_messages
|
||||
func fetch_surrounding_messages(cCallback C.CB_S_I_S_S, operationID *C.char, message *C.char, before C.int, after C.int) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.FetchSurroundingMessages(baseCallback, C.GoString(operationID), C.GoString(message), int(before), int(after))
|
||||
}
|
||||
|
||||
//export get_all_conversation_list
|
||||
func get_all_conversation_list(cCallback C.CB_S_I_S_S, operationID *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
@@ -732,17 +799,17 @@ func get_conversation_id_by_session_type(operationID *C.char, sourceID *C.char,
|
||||
}
|
||||
|
||||
//export send_message
|
||||
func send_message(cCallback C.CB_S_I_S_S_I, operationID, message, recvID, groupID, offlinePushInfo *C.char, isOnlineOnly C.int) {
|
||||
func send_message(cCallback C.CB_S_I_S_S_I, operationID, message, recvID, groupID, channelID, offlinePushInfo *C.char, isOnlineOnly C.int) {
|
||||
sendMsgCallback := NewSendMessageCallback(cCallback, operationID)
|
||||
open_im_sdk.SendMessage(sendMsgCallback, C.GoString(operationID), C.GoString(message), C.GoString(recvID),
|
||||
C.GoString(groupID), C.GoString(offlinePushInfo), parseBool(int(isOnlineOnly)))
|
||||
C.GoString(groupID), C.GoString(channelID), C.GoString(offlinePushInfo), parseBool(int(isOnlineOnly)))
|
||||
}
|
||||
|
||||
//export send_message_not_oss
|
||||
func send_message_not_oss(cCallback C.CB_S_I_S_S_I, operationID, message, recvID, groupID, offlinePushInfo *C.char, isOnlineOnly C.int) {
|
||||
func send_message_not_oss(cCallback C.CB_S_I_S_S_I, operationID, message, recvID, groupID, channelID, offlinePushInfo *C.char, isOnlineOnly C.int) {
|
||||
sendMsgCallback := NewSendMessageCallback(cCallback, operationID)
|
||||
open_im_sdk.SendMessageNotOss(sendMsgCallback, C.GoString(operationID), C.GoString(message), C.GoString(recvID),
|
||||
C.GoString(groupID), C.GoString(offlinePushInfo), parseBool(int(isOnlineOnly)))
|
||||
C.GoString(groupID), C.GoString(channelID), C.GoString(offlinePushInfo), parseBool(int(isOnlineOnly)))
|
||||
}
|
||||
|
||||
//export find_message_list
|
||||
@@ -769,6 +836,12 @@ func revoke_message(cCallback C.CB_S_I_S_S, operationID *C.char, conversationID
|
||||
open_im_sdk.RevokeMessage(baseCallback, C.GoString(operationID), C.GoString(conversationID), C.GoString(clientMsgID))
|
||||
}
|
||||
|
||||
//export edit_message
|
||||
func edit_message(cCallback C.CB_S_I_S_S, operationID *C.char, conversationID *C.char, clientMsgID *C.char, message *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.EditMessage(baseCallback, C.GoString(operationID), C.GoString(conversationID), C.GoString(clientMsgID), C.GoString(message))
|
||||
}
|
||||
|
||||
//export typing_status_update
|
||||
func typing_status_update(cCallback C.CB_S_I_S_S, operationID *C.char, recvID *C.char, msgTip *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
@@ -781,6 +854,12 @@ func mark_conversation_message_as_read(cCallback C.CB_S_I_S_S, operationID *C.ch
|
||||
open_im_sdk.MarkConversationMessageAsRead(baseCallback, C.GoString(operationID), C.GoString(conversationID))
|
||||
}
|
||||
|
||||
//export mark_messages_as_read_by_msg_id
|
||||
func mark_messages_as_read_by_msg_id(cCallback C.CB_S_I_S_S, operationID *C.char, conversationID *C.char, clientMsgIDs *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.MarkMessagesAsReadByMsgID(baseCallback, C.GoString(operationID), C.GoString(conversationID), C.GoString(clientMsgIDs))
|
||||
}
|
||||
|
||||
//export delete_message_from_local_storage
|
||||
func delete_message_from_local_storage(cCallback C.CB_S_I_S_S, operationID *C.char, conversationID *C.char, clientMsgID *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
@@ -799,6 +878,18 @@ func hide_all_conversations(cCallback C.CB_S_I_S_S, operationID *C.char) {
|
||||
open_im_sdk.HideAllConversations(baseCallback, C.GoString(operationID))
|
||||
}
|
||||
|
||||
//export search_conversation
|
||||
func search_conversation(cCallback C.CB_S_I_S_S, operationID *C.char, searchParam *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.SearchConversation(baseCallback, C.GoString(operationID), C.GoString(searchParam))
|
||||
}
|
||||
|
||||
//export search_conversations
|
||||
func search_conversations(cCallback C.CB_S_I_S_S, operationID *C.char, searchParam *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.SearchConversation(baseCallback, C.GoString(operationID), C.GoString(searchParam))
|
||||
}
|
||||
|
||||
//export delete_all_msg_from_local_and_svr
|
||||
func delete_all_msg_from_local_and_svr(cCallback C.CB_S_I_S_S, operationID *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
@@ -830,9 +921,9 @@ func insert_single_message_to_local_storage(cCallback C.CB_S_I_S_S, operationID
|
||||
}
|
||||
|
||||
//export insert_group_message_to_local_storage
|
||||
func insert_group_message_to_local_storage(cCallback C.CB_S_I_S_S, operationID *C.char, message *C.char, groupID *C.char, sendID *C.char) {
|
||||
func insert_group_message_to_local_storage(cCallback C.CB_S_I_S_S, operationID *C.char, message *C.char, groupID *C.char, channelID *C.char, sendID *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.InsertGroupMessageToLocalStorage(baseCallback, C.GoString(operationID), C.GoString(message), C.GoString(groupID), C.GoString(sendID))
|
||||
open_im_sdk.InsertGroupMessageToLocalStorage(baseCallback, C.GoString(operationID), C.GoString(message), C.GoString(groupID), C.GoString(channelID), C.GoString(sendID))
|
||||
}
|
||||
|
||||
//export search_local_messages
|
||||
@@ -1254,6 +1345,67 @@ func logs(cCallback C.CB_S_I_S_S, operationID *C.char, logLevel C.int, file *C.c
|
||||
open_im_sdk.Logs(baseCallback, C.GoString(operationID), int(logLevel), C.GoString(file), int(line), C.GoString(msgs), C.GoString(err), C.GoString(keyAndValue))
|
||||
}
|
||||
|
||||
// =====================================================channel===============================================
|
||||
|
||||
// JoinChannel joins a channel
|
||||
//
|
||||
//export join_channel
|
||||
func join_channel(cCallback C.CB_S_I_S_S, operationID, cChannelID, cReqMsg *C.char, cJoinSource C.int, ex *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.JoinChannel(baseCallback, C.GoString(operationID), C.GoString(cChannelID), C.GoString(cReqMsg),
|
||||
int32(cJoinSource), C.GoString(ex))
|
||||
}
|
||||
|
||||
// QuitChannel quits a channel
|
||||
//
|
||||
//export quit_channel
|
||||
func quit_channel(cCallback C.CB_S_I_S_S, operationID, cChannelID *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.QuitChannel(baseCallback, C.GoString(operationID), C.GoString(cChannelID))
|
||||
}
|
||||
|
||||
// GetSpecifiedChannelsInfo retrieves the information of specified channels
|
||||
//
|
||||
//export get_specified_channels_info
|
||||
func get_specified_channels_info(cCallback C.CB_S_I_S_S, operationID, cChannelIDList *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.GetSpecifiedChannelsInfo(baseCallback, C.GoString(operationID), C.GoString(cChannelIDList))
|
||||
}
|
||||
|
||||
// GetChannelMemberList retrieves the list of channel members
|
||||
//
|
||||
//export get_channel_member_list
|
||||
func get_channel_member_list(cCallback C.CB_S_I_S_S, operationID, cChannelID *C.char, cFilter, cOffset, cCount C.int) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.GetChannelMemberList(baseCallback, C.GoString(operationID), C.GoString(cChannelID), int32(cFilter),
|
||||
int32(cOffset), int32(cCount))
|
||||
}
|
||||
|
||||
// GetSpecifiedChannelMembersInfo retrieves the information of specified channel members
|
||||
//
|
||||
//export get_specified_channel_members_info
|
||||
func get_specified_channel_members_info(cCallback C.CB_S_I_S_S, operationID, cChannelID, cUserIDList *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.GetSpecifiedChannelMembersInfo(baseCallback, C.GoString(operationID), C.GoString(cChannelID),
|
||||
C.GoString(cUserIDList))
|
||||
}
|
||||
|
||||
// IsJoinChannel checks if the user has joined a channel
|
||||
//
|
||||
//export is_join_channel
|
||||
func is_join_channel(cCallback C.CB_S_I_S_S, operationID, cChannelID *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.IsJoinChannel(baseCallback, C.GoString(operationID), C.GoString(cChannelID))
|
||||
}
|
||||
|
||||
// GetUsersInChannel retrieves the users in a channel
|
||||
//
|
||||
//export get_users_in_channel
|
||||
func get_users_in_channel(cCallback C.CB_S_I_S_S, operationID, cChannelID, userIDList *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.GetUsersInChannel(baseCallback, C.GoString(operationID), C.GoString(cChannelID), C.GoString(userIDList))
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
}
|
||||
|
||||
34
go/go.mod
34
go/go.mod
@@ -1,8 +1,10 @@
|
||||
module github.com/openimsdk/openim-sdk-cpp
|
||||
|
||||
go 1.21
|
||||
go 1.23.0
|
||||
|
||||
require github.com/openimsdk/openim-sdk-core/v3 v3.8.2-alpha.2
|
||||
toolchain go1.24.2
|
||||
|
||||
require github.com/openimsdk/openim-sdk-core/v3 v3.8.3-patch.3
|
||||
|
||||
require (
|
||||
github.com/bytedance/sonic v1.9.1 // indirect
|
||||
@@ -29,7 +31,7 @@ require (
|
||||
github.com/mattn/go-sqlite3 v1.14.22 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/openimsdk/protocol v0.0.72 // indirect
|
||||
github.com/openimsdk/protocol v0.0.72-alpha.70 // indirect
|
||||
github.com/openimsdk/tools v0.0.50-alpha.21 // indirect
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
|
||||
@@ -40,17 +42,23 @@ require (
|
||||
go.uber.org/multierr v1.6.0 // indirect
|
||||
go.uber.org/zap v1.24.0 // indirect
|
||||
golang.org/x/arch v0.3.0 // indirect
|
||||
golang.org/x/crypto v0.21.0 // indirect
|
||||
golang.org/x/image v0.15.0 // indirect
|
||||
golang.org/x/net v0.22.0 // indirect
|
||||
golang.org/x/sync v0.6.0 // indirect
|
||||
golang.org/x/sys v0.18.0 // indirect
|
||||
golang.org/x/text v0.14.0 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect
|
||||
google.golang.org/grpc v1.62.1 // indirect
|
||||
google.golang.org/protobuf v1.33.0 // indirect
|
||||
golang.org/x/crypto v0.37.0 // indirect
|
||||
golang.org/x/image v0.26.0 // indirect
|
||||
golang.org/x/net v0.39.0 // indirect
|
||||
golang.org/x/sync v0.13.0 // indirect
|
||||
golang.org/x/sys v0.32.0 // indirect
|
||||
golang.org/x/text v0.24.0 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
|
||||
google.golang.org/grpc v1.68.0 // indirect
|
||||
google.golang.org/protobuf v1.35.1 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
gorm.io/driver/sqlite v1.5.5 // indirect
|
||||
gorm.io/gorm v1.25.10 // indirect
|
||||
nhooyr.io/websocket v1.8.10 // indirect
|
||||
nhooyr.io/websocket v1.8.17 // indirect
|
||||
)
|
||||
|
||||
replace github.com/openimsdk/openim-sdk-core/v3 => ../../openim-sdk-core
|
||||
|
||||
replace github.com/openimsdk/protocol => ../../open-im-protocol
|
||||
|
||||
replace github.com/openimsdk/tools => ../../tools
|
||||
|
||||
46
go/go.sum
46
go/go.sum
@@ -64,12 +64,6 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||
github.com/openimsdk/openim-sdk-core/v3 v3.8.2-alpha.2 h1:MHcPgvGrQFPub/fTfH1YdHjOgWkERLo4iYXghO3yUOw=
|
||||
github.com/openimsdk/openim-sdk-core/v3 v3.8.2-alpha.2/go.mod h1:cClD1CpcU7bO6YwmPXPHRLZQsCaWPoQnrT0ZhWZkO2w=
|
||||
github.com/openimsdk/protocol v0.0.72 h1:K+vslwaR7lDXyBzb07UuEQITaqsgighz7NyXVIWsu6A=
|
||||
github.com/openimsdk/protocol v0.0.72/go.mod h1:OZQA9FR55lseYoN2Ql1XAHYKHJGu7OMNkUbuekrKCM8=
|
||||
github.com/openimsdk/tools v0.0.50-alpha.21 h1:ZKgSFkiBjz6KcNZlNwvrSoUYJ7K5Flan8wHuRBH3VqY=
|
||||
github.com/openimsdk/tools v0.0.50-alpha.21/go.mod h1:h1cYmfyaVtgFbKmb1Cfsl8XwUOMTt8ubVUQrdGtsUh4=
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
|
||||
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
|
||||
@@ -105,26 +99,26 @@ go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
|
||||
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
|
||||
golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k=
|
||||
golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
|
||||
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
|
||||
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
|
||||
golang.org/x/image v0.15.0 h1:kOELfmgrmJlw4Cdb7g/QGuB3CvDrXbqEIww/pNtNBm8=
|
||||
golang.org/x/image v0.15.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE=
|
||||
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
|
||||
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
||||
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
|
||||
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
|
||||
golang.org/x/image v0.26.0 h1:4XjIFEZWQmCZi6Wv8BoxsDhRU3RVnLX04dToTDAEPlY=
|
||||
golang.org/x/image v0.26.0/go.mod h1:lcxbMFAovzpnJxzXS3nyL83K27tmqtKzIJpctK8YO5c=
|
||||
golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
|
||||
golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
|
||||
golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
|
||||
golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
|
||||
google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk=
|
||||
google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE=
|
||||
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
|
||||
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
|
||||
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
|
||||
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
|
||||
google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0=
|
||||
google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA=
|
||||
google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
|
||||
google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
@@ -134,6 +128,6 @@ gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E=
|
||||
gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE=
|
||||
gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s=
|
||||
gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
|
||||
nhooyr.io/websocket v1.8.10 h1:mv4p+MnGrLDcPlBoWsvPP7XCzTYMXP9F9eIGoKbgx7Q=
|
||||
nhooyr.io/websocket v1.8.10/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c=
|
||||
nhooyr.io/websocket v1.8.17 h1:KEVeLJkUywCKVsnLIDlD/5gtayKp8VoCkksHCGGfT9Y=
|
||||
nhooyr.io/websocket v1.8.17/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c=
|
||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
||||
|
||||
@@ -14,7 +14,6 @@ CB_S DebugPrint;
|
||||
void Call_CB_S(CB_S func,char* data)
|
||||
{
|
||||
if(func == NULL){
|
||||
printf("callback func is null\n");
|
||||
return;
|
||||
}
|
||||
func(data);
|
||||
@@ -24,7 +23,6 @@ void Call_CB_S(CB_S func,char* data)
|
||||
void Call_CB_I_S(CB_I_S func,int event,char* data)
|
||||
{
|
||||
if(func == NULL){
|
||||
printf("callback func is null\n");
|
||||
return;
|
||||
}
|
||||
if (strcmp(data, "\"\"") == 0) {
|
||||
@@ -33,44 +31,37 @@ void Call_CB_I_S(CB_I_S func,int event,char* data)
|
||||
func(event,data);
|
||||
if (data != NULL && data[0] != '\0')
|
||||
{
|
||||
printf("this is not null data event\n");
|
||||
free(data);
|
||||
}
|
||||
}
|
||||
void Call_CB_S_I_S_S(CB_S_I_S_S func,char* operationID, int errCode,char* errMsg,char* data)
|
||||
{
|
||||
if(func == NULL){
|
||||
printf("callback func is null\n");
|
||||
return;
|
||||
}
|
||||
if (strcmp(data, "\"\"") == 0) {
|
||||
strcpy(data, "");
|
||||
}
|
||||
if (strlen(errMsg) != 0 && errMsg[strlen(errMsg) - 1] != '\0') {
|
||||
printf("ttttt %s\n",errMsg);
|
||||
strncat(errMsg, "\0", 1);
|
||||
}
|
||||
func(operationID,errCode,errMsg,data);
|
||||
if (errMsg != NULL && errMsg[0] != '\0')
|
||||
{
|
||||
printf("this is not null errmsg %s\n",errMsg);
|
||||
free(errMsg);
|
||||
}
|
||||
if (data != NULL && data[0] != '\0')
|
||||
{
|
||||
printf("this is not null data base,opid:%s,data:%s\n",operationID,data);
|
||||
free(data);
|
||||
}
|
||||
if (operationID != NULL)
|
||||
{
|
||||
printf("this is not null operationID:%s\n",operationID);
|
||||
free(operationID);
|
||||
}
|
||||
}
|
||||
void Call_CB_S_I_S_S_I(CB_S_I_S_S_I func,char* operationID,int errCode,char* errMsg,char* data,int progress)
|
||||
{
|
||||
if(func == NULL){
|
||||
printf("callback func is null\n");
|
||||
return;
|
||||
}
|
||||
if(strcmp(data, "\"\"") == 0) {
|
||||
@@ -79,17 +70,14 @@ void Call_CB_S_I_S_S_I(CB_S_I_S_S_I func,char* operationID,int errCode,char* err
|
||||
func(operationID,errCode,errMsg,data,progress);
|
||||
if (errMsg != NULL && errMsg[0] != '\0')
|
||||
{
|
||||
printf("this is not null errmsg\n");
|
||||
free(errMsg);
|
||||
}
|
||||
if (data != NULL && data[0] != '\0')
|
||||
{
|
||||
printf("this is not null data\n");
|
||||
free(data);
|
||||
}
|
||||
if (operationID != NULL)
|
||||
{
|
||||
printf("this is not null operationID\n");
|
||||
free(operationID);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
gcc -o test.exe -L. openimsdk.dll test.c
|
||||
::gcc -o test.exe -L. openimsdk.dll test.c
|
||||
|
||||
::gcc -o test.exe -L ../../shared/windows -l libopenimsdk test.c
|
||||
gcc -o test.exe -L ../../shared/windows -l libopenimsdk test.c
|
||||
|
||||
66
scripts/test.c
Normal file
66
scripts/test.c
Normal file
@@ -0,0 +1,66 @@
|
||||
// gcc -o test.exe -lc_wrapper.dll test.c
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "../shared/windows/libopenimsdk.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GoUint32 platformID;
|
||||
char apiAddr[256];
|
||||
char wsAddr[256];
|
||||
char dataDir[256];
|
||||
GoUint32 logLevel;
|
||||
GoUint8 isLogStandardOutput;
|
||||
char logFilePath[256];
|
||||
GoUint8 isExternalExtensions;
|
||||
} IMConfigC;
|
||||
|
||||
void c_conn_callback(int event, char *data)
|
||||
{
|
||||
printf("C c_conn_callback receive from Go callbck code: %d,data: %s\n", event,data);
|
||||
|
||||
}
|
||||
void c_conversation_callback(int event, char *data)
|
||||
{
|
||||
printf("C c_conversation_callback receive from Go callbck code: %d,data: %s\n", event, data);
|
||||
}
|
||||
void c_message_callback(int event, char *data)
|
||||
{
|
||||
printf("C c_message_callback receive from Go callbck code: %d,data: %s\n", event, data);
|
||||
}
|
||||
void c_base_callback(char * operationID ,int errCode,char * errMsg,char *data)
|
||||
{
|
||||
printf("C c_base_callback operationID: %s receive from Go callbck code: %d, errMsg: %s, data: %s\n", operationID, errCode, errMsg, data);
|
||||
}
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char operationID[] = "12345";
|
||||
// char uid[] = "6959062403";
|
||||
char uid[] = "openIM123";
|
||||
// char token[] = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySUQiOiI2OTU5MDYyNDAzIiwiUGxhdGZvcm1JRCI6MywiZXhwIjoxNzAwNzIwOTg0LCJuYmYiOjE2OTI5NDQ2ODQsImlhdCI6MTY5Mjk0NDk4NH0.8otKTFrOCs8_ueV10rNOD-rzHrCT_EN0obKS9q79bIc";
|
||||
char token[] = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySUQiOiJvcGVuSU0xMjMiLCJQbGF0Zm9ybUlEIjo2LCJleHAiOjE3MDkxMjQ2NzYsIm5iZiI6MTcwMTM0ODM3NiwiaWF0IjoxNzAxMzQ4Njc2fQ.EqlV5TlpiElYhUOHCEcSrZOWi9ldrUMR1L4q0blvxs0";
|
||||
|
||||
char *jsonString = "{\"platformID\": 2, \"apiAddr\": \"http://14.29.168.56:10002\", \"wsAddr\":\"ws://14.29.168.56:10001\",\"dataDir\": \"./\", \"logLevel\": 5, \"isLogStandardOutput\": true, \"logFilePath\": \"./\", \"isExternalExtensions\": true}";
|
||||
|
||||
GoUint8 init_result;
|
||||
init_result = init_sdk(c_conn_callback,operationID, jsonString);
|
||||
printf("init_result: %u\n", init_result);
|
||||
set_conversation_listener(c_conversation_callback);
|
||||
set_advanced_msg_listener(c_message_callback);
|
||||
login(c_base_callback, operationID, uid, token);
|
||||
sleep(10);
|
||||
// char text[] = "hello";
|
||||
char* loginUserID=get_login_user();
|
||||
|
||||
printf("return :%s\n",loginUserID);
|
||||
char operationID1[] = "12345,create";
|
||||
char *message = create_text_message(operationID1, "hello");
|
||||
printf("return :%s\n",message);
|
||||
char operationID2[] = "12345,get_all_conversation_list";
|
||||
get_all_conversation_list(c_base_callback, operationID2);
|
||||
|
||||
sleep(1000000);
|
||||
return 0;
|
||||
}
|
||||
2
shared/windows/build_lib.bat
Normal file
2
shared/windows/build_lib.bat
Normal file
@@ -0,0 +1,2 @@
|
||||
gendef .\libopenimsdk.dll -a
|
||||
dlltool --def libopenimsdk.def --output-lib libopenimsdk.lib
|
||||
Reference in New Issue
Block a user