第44节 OpenIM first meeting source code
❤️💕💕记录sealos开源项目的学习过程。k8s,docker和云原生的学习。Myblog:http://nsddd.top
[TOC]
目录结构
❯ tree Open-IM-SDK-Core -L 2
Open-IM-SDK-Core
├── LICENSE
├── Makefile
├── README.md
├── go.mod
├── go.sum
├── internal
│ ├── business
│ ├── cache
│ ├── common
│ ├── conversation_msg
│ ├── file
│ ├── friend
│ ├── full
│ ├── group
│ ├── heartbeart
│ ├── interaction
│ ├── login
│ ├── obj_storage
│ ├── signaling
│ ├── super_group
│ ├── user
│ ├── util
│ └── work_moments
├── main
│ ├── gordon_main.go
│ ├── main.go
│ ├── online_open_im.go
│ ├── press_open_im.go
│ ├── reliability_open_im.go
│ └── sk_main.go
├── open_im_sdk
│ ├── conversation_msg.go
│ ├── friend.go
│ ├── group.go
│ ├── init_login.go
│ ├── listener.go
│ ├── signaling.go
│ ├── signaling_listener.go
│ ├── third.go
│ ├── user.go
│ ├── userRelated.go
│ ├── util.go
│ └── workmoments.go
├── open_im_sdk_callback
│ ├── callback.go
│ ├── for_service.go
│ └── signaling_callback.go
├── pkg
│ ├── common
│ ├── constant
│ ├── db
│ ├── log
│ ├── network
│ ├── sdk_params_callback
│ ├── server_api_params
│ ├── syncer
│ └── utils
├── sdk_struct
│ └── sdk_struct.go
├── single_test
│ ├── msg_delay_open_im.go
│ ├── online_open_im.go
│ └── press_open_im.go
├── test
│ ├── Makefile
│ ├── account.go
│ ├── config.go
│ ├── login.go
│ ├── online.go
│ ├── reliability.go
│ ├── sendMessage.go
│ ├── t_conversation_msg.go
│ ├── t_friend_sdk.go
│ ├── t_group_sdk.go
│ ├── t_signaling.go
│ ├── work_group_create.go
│ └── work_moments.go
├── testv2
│ ├── callback.go
│ ├── config.go
│ ├── conversation_test.go
│ ├── create_msg_test.go
│ ├── file_test.go
│ ├── friend_test.go
│ ├── group_test.go
│ ├── init.go
│ ├── listener.go
│ ├── signaling_test.go
│ ├── test.png
│ ├── user_test.go
│ └── work_moment_test.go
├── wasm
│ ├── cmd
│ ├── event_listener
│ ├── indexdb
│ └── wasm_wrapper
├── work_group_test
│ ├── create_work_group_open_im.go
│ ├── msg_delay_open_im.go
│ └── press_open_im.go
└── ws_wrapper
├── cmd
├── test
├── utils
└── ws_local_server
Open-IM-SDK-Core: Open-IM SDK 核心代码
internal: 内部实现
business: 业务处理相关实现cache: 缓存相关实现common: 公用逻辑实现conversation_msg: 消息相关实现file: 文件相关实现friend: 好友相关实现full: 获取好友信息group: 群组相关实现heartbeart: 心跳相关实现,长连接interaction: 交互相关实现login: 登录相关实现obj_storage: 对象存储相关实现signaling: 信令相关实现super_group: 超级群相关实现(tg 群,有一个管道)user: 用户相关实现util: 工具函数work_moments: 工作圈相关实现
main: 主函数open_im_sdk: Open-IM SDK 对外提供的 APIopen_im_sdk_callback: Open-IM SDK 回调函数相关实现pkg: 包
common: 公共逻辑实现constant: 常量定义db: 数据库相关实现log: 日志相关实现network: 网络相关实现sdk_params_callback: SDK 参数回调相关实现server_api_params: 服务端 API 参数相关实现syncer: 同步相关实现utils: 工具函数
sdk_struct: SDK 结构体定义single_test: 单元测试test: 测试testv2: 测试 v2wasm: WebAssembly 相关实现work_group_test: 工作群测试ws_wrapper: WebSocket 包装器
open_im_sdk
这里面都是全部对外的 sdk
open_im_sdk
这里面都是一些回调接口,也是对外导出,移动端实现这些接口。
Go语言调用 callback 先上一次 UI 层处理。
cache
这是一个Go语言程序中的一个结构体类型Cache,它包含了一些方法来更新和查询缓存中的数据。下面解释每个方法的功能:
NewCache(user *user.User, friend *friend.Friend) *Cache:这个方法用于创建一个新的Cache对象,它需要两个参数user和friend,这两个参数分别是对用户和好友的操作的接口。Update(userID, faceURL, nickname string):这个方法用于更新缓存中指定用户ID的用户信息,包括用户的昵称和头像URL。UpdateConversation(conversation model_struct.LocalConversation):这个方法用于更新缓存中指定会话ID的会话信息。UpdateConversations(conversations []*model_struct.LocalConversation):这个方法用于批量更新缓存中多个会话的信息。GetAllConversations() []*model_struct.LocalConversation:这个方法用于获取缓存中所有会话的信息。GetAllHasUnreadMessageConversations() []*model_struct.LocalConversation:这个方法用于获取缓存中所有有未读消息的会话的信息。GetConversation(conversationID string) model_struct.LocalConversation:这个方法用于获取缓存中指定会话ID的会话信息。GetUserNameAndFaceURL(ctx context.Context, userID string) (faceURL, name string, err error):这个方法用于获取指定用户ID的用户昵称和头像URL。它首先从缓存中查找,如果缓存中没有则从本地数据库中查找,如果还没有则从服务器数据库中查找。如果最终没有找到,则返回一个错误。
除了Cache类型中的方法,这段代码还定义了一个UserInfo类型,用于缓存用户的昵称和头像URL。
END 链接
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©