Compare commits

...

2 Commits

Author SHA1 Message Date
cpdl
114980dab0 no message 2025-05-07 16:01:31 +08:00
cpdl
1af1ecfbb9 no message 2025-05-07 11:27:33 +08:00
9 changed files with 564 additions and 551 deletions

View File

@@ -23,24 +23,26 @@ class _MyAppState extends State<MyApp> {
super.initState();
OpenIM.iMManager
.initSDK(
platformID: 2,
platformID: 3,
apiAddr: 'http://192.168.77.135:10002',
wsAddr: 'ws://192.168.77.135:10001',
dataDir: './',
listener: OnConnectListener())
.then((value) {
print('SDK initialized successfully');
.then((value) {});
OpenIM.iMManager.userManager.setUserListener(OnUserListener());
OpenIM.iMManager
.login(
userID: "3e8b8fb2ecd8414db50838d9f7bcb19d",
userID: "8bfe13b5eac44e87963652abb91d80d2",
token:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySUQiOiIzZThiOGZiMmVjZDg0MTRkYjUwODM4ZDlmN2JjYjE5ZCIsIlBsYXRmb3JtSUQiOjIsImV4cCI6MTc1Mzc1MTYyNywiaWF0IjoxNzQ1OTc1NjIyfQ.S-CxfETXYyLFe2VqStwbrVCRcB5j2T2qi-52y1L-3OI")
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySUQiOiI4YmZlMTNiNWVhYzQ0ZTg3OTYzNjUyYWJiOTFkODBkMiIsIlBsYXRmb3JtSUQiOjMsImV4cCI6MTc1NDM2NDkwNCwiaWF0IjoxNzQ2NTg4ODk5fQ.575xwR9lzJo1i5Te-Ul-99odONfxbzDXW0_2Kv3nFEE")
.then((value) {
print('Login successful');
}).catchError((error) {
print('Login failed: $error');
});
OpenIM.iMManager.conversationManager
.getAllConversationList()
.then((value) {
print('Get all conversation list successful');
});
}).catchError((error) {});
}
@override

View File

@@ -14,13 +14,6 @@ namespace ThreadUtil {
static std::condition_variable g_queueCondition;
static bool g_initialized = false;
static HANDLE g_workerThread = NULL;
// Function to initialize the platform thread ID
void InitializePlatformThreadId() {
g_platformThreadId = GetCurrentThreadId();
g_initialized = true;
}
// Worker thread function
unsigned __stdcall WorkerThreadProc(void* param) {
while (true) {
@@ -39,6 +32,16 @@ namespace ThreadUtil {
return 0;
}
// Function to initialize the platform thread ID
void InitializePlatformThreadId() {
g_platformThreadId = GetCurrentThreadId();
// Create worker thread
g_workerThread = (HANDLE)_beginthreadex(NULL, 0, WorkerThreadProc, NULL, 0, NULL);
g_initialized = true;
}
// Function to ensure code runs on the platform thread
void RunOnPlatformThread(std::function<void()> callback) {
@@ -46,8 +49,7 @@ namespace ThreadUtil {
if (!g_initialized) {
InitializePlatformThreadId();
// Create worker thread
g_workerThread = (HANDLE)_beginthreadex(NULL, 0, WorkerThreadProc, NULL, 0, NULL);
}
// If we're already on the platform thread, execute directly

View File

@@ -9,48 +9,47 @@
class ChannelManagerService : public FLTService
{
public:
public:
ChannelManagerService();
void onMethodCalled(
const std::string &method,
const flutter::EncodableMap *arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
virtual void onMethodCalled(
const std::string& method, const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result)
override;
// Method handlers
void setChannelListener(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getChannelMembersInfo(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getChannelMemberList(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getChannelsInfo(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void joinChannel(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void quitChannel(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void changeChannelMute(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void changeChannelMemberMute(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void isJoinChannel(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getUsersInChannel(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
private:
std::string m_serviceName;
};
};
#endif // CHANNEL_MANAGER_SERVICE_H

View File

@@ -6,15 +6,15 @@
#include <memory>
#include <string>
class ConversationManagerService: public FLTService {
class ConversationManagerService : public FLTService {
public:
ConversationManagerService();
void onMethodCalled(
const std::string& method,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
virtual void onMethodCalled(
const std::string& method, const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result)
override;
// Method handlers
void setConversationListener(
@@ -75,8 +75,7 @@ public:
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
private:
std::string m_serviceName;
};
#endif // CONVERSATION_MANAGER_SERVICE_H

View File

@@ -12,63 +12,61 @@ class FriendshipManagerService : public FLTService
public:
FriendshipManagerService();
void onMethodCalled(
const std::string &method,
const flutter::EncodableMap *arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
virtual void onMethodCalled(
const std::string& method, const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result)
override;
// Method handlers
void setFriendListener(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getFriendsInfo(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void addFriend(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getFriendApplicationListAsRecipient(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getFriendApplicationListAsApplicant(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getFriendList(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getFriendListPage(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void addBlacklist(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getBlacklist(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void removeBlacklist(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void checkFriend(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void deleteFriend(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void acceptFriendApplication(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void refuseFriendApplication(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void searchFriends(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void updateFriends(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
private:
std::string m_serviceName;
};
#endif // FRIENDSHIP_MANAGER_SERVICE_H

View File

@@ -12,96 +12,95 @@ class GroupManagerService : public FLTService
public:
GroupManagerService();
void onMethodCalled(
const std::string &method,
const flutter::EncodableMap *arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
virtual void onMethodCalled(
const std::string& method, const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result)
override;
// Method handlers
void setGroupListener(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void inviteUserToGroup(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void kickGroupMember(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getGroupMembersInfo(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getGroupMemberList(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getJoinedGroupList(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getJoinedGroupListPage(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void createGroup(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void setGroupInfo(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getGroupsInfo(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void joinGroup(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void quitGroup(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void transferGroupOwner(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getGroupApplicationListAsRecipient(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getGroupApplicationListAsApplicant(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void acceptGroupApplication(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void refuseGroupApplication(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void dismissGroup(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void changeGroupMute(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void changeGroupMemberMute(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void searchGroups(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getGroupMemberListByJoinTimeFilter(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getGroupMemberOwnerAndAdmin(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void searchGroupMembers(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void setGroupMemberInfo(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void isJoinGroup(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void getUsersInGroup(
const flutter::EncodableMap *arguments,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
private:
std::string m_serviceName;
};
#endif // GROUP_MANAGER_SERVICE_H

View File

@@ -10,10 +10,10 @@ class MessageManagerService : public FLTService {
public:
MessageManagerService();
void onMethodCalled(
const std::string& method,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
virtual void onMethodCalled(
const std::string& method, const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result)
override;
// Method handlers
void setAdvancedMsgListener(
@@ -152,8 +152,7 @@ public:
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
private:
std::string m_serviceName;
};
#endif // MESSAGE_MANAGER_SERVICE_H

View File

@@ -15,21 +15,29 @@ void UserManagerService::onMethodCalled(
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
if (method == "setUserListener") {
setUserListener(arguments, result);
} else if (method == "getUsersInfo") {
}
else if (method == "getUsersInfo") {
getUsersInfo(arguments, result);
} else if (method == "setSelfInfo") {
}
else if (method == "setSelfInfo") {
setSelfInfo(arguments, result);
} else if (method == "getSelfUserInfo") {
}
else if (method == "getSelfUserInfo") {
getSelfUserInfo(arguments, result);
} else if (method == "subscribeUsersStatus") {
}
else if (method == "subscribeUsersStatus") {
subscribeUsersStatus(arguments, result);
} else if (method == "unsubscribeUsersStatus") {
}
else if (method == "unsubscribeUsersStatus") {
unsubscribeUsersStatus(arguments, result);
} else if (method == "getSubscribeUsersStatus") {
}
else if (method == "getSubscribeUsersStatus") {
getSubscribeUsersStatus(arguments, result);
} else if (method == "getUserStatus") {
}
else if (method == "getUserStatus") {
getUserStatus(arguments, result);
} else {
}
else {
result->NotImplemented();
}
}
@@ -40,7 +48,8 @@ void UserManagerService::setUserListener(
if (arguments) {
set_user_listener(NewUserListenCallBack());
result->Success(flutter::EncodableValue());
} else {
}
else {
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
}
}
@@ -55,7 +64,8 @@ void UserManagerService::getUsersInfo(
char* userIDList_cs = const_cast<char*>(userIDList.c_str());
get_users_info(NewBaseCallBack(result), operationID_cs, userIDList_cs);
} else {
}
else {
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
}
}
@@ -70,7 +80,8 @@ void UserManagerService::setSelfInfo(
char* userInfo_cs = const_cast<char*>(userInfo.c_str());
set_self_info(NewBaseCallBack(result), operationID_cs, userInfo_cs);
} else {
}
else {
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
}
}
@@ -83,7 +94,8 @@ void UserManagerService::getSelfUserInfo(
char* operationID_cs = const_cast<char*>(operationID.c_str());
get_self_user_info(NewBaseCallBack(result), operationID_cs);
} else {
}
else {
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
}
}
@@ -98,7 +110,8 @@ void UserManagerService::subscribeUsersStatus(
char* userIDs_cs = const_cast<char*>(userIDs.c_str());
subscribe_users_status(NewBaseCallBack(result), operationID_cs, userIDs_cs);
} else {
}
else {
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
}
}
@@ -113,7 +126,8 @@ void UserManagerService::unsubscribeUsersStatus(
char* userIDs_cs = const_cast<char*>(userIDs.c_str());
unsubscribe_users_status(NewBaseCallBack(result), operationID_cs, userIDs_cs);
} else {
}
else {
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
}
}
@@ -126,7 +140,8 @@ void UserManagerService::getSubscribeUsersStatus(
char* operationID_cs = const_cast<char*>(operationID.c_str());
get_subscribe_users_status(NewBaseCallBack(result), operationID_cs);
} else {
}
else {
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
}
}
@@ -141,7 +156,8 @@ void UserManagerService::getUserStatus(
char* userIDs_cs = const_cast<char*>(userIDs.c_str());
get_user_status(NewBaseCallBack(result), operationID_cs, userIDs_cs);
} else {
}
else {
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
}
}

View File

@@ -11,10 +11,10 @@ class UserManagerService : public FLTService {
public:
UserManagerService();
void onMethodCalled(
const std::string& method,
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
virtual void onMethodCalled(
const std::string& method, const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result)
override;
// Method handlers
void setUserListener(
@@ -42,8 +42,7 @@ public:
const flutter::EncodableMap* arguments,
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
private:
std::string m_serviceName;
};
#endif // USER_MANAGER_SERVICE_H