gitextract_689bbic2/ ├── .editorconfig ├── .gitattributes ├── .github/ │ └── ISSUE_TEMPLATE.md ├── .gitignore ├── .travis.yml ├── LICENSE ├── LICENSE_996 ├── LICENSE_mqtt-jmeter ├── README.md ├── broker/ │ ├── config/ │ │ ├── hazelcast.xml │ │ └── wildfirechat.conf │ ├── migrate/ │ │ ├── h2/ │ │ │ ├── V10__create_default_admin.sql │ │ │ ├── V11__alter_device_token.sql │ │ │ ├── V12__add_group_control_columns.sql │ │ │ ├── V13__create_settings_table.sql │ │ │ ├── V14__add_id_for_sensitive_word.sql │ │ │ ├── V15__alter_voip_token_length.sql │ │ │ ├── V16__add_friend_blocked.sql │ │ │ ├── V17__add_user_session_token_index.sql │ │ │ ├── V18__add_friend_request_index.sql │ │ │ ├── V19__add_user_session_uid_index.sql │ │ │ ├── V1__baseline.sql │ │ │ ├── V20__user_session_add_deleted.sql │ │ │ ├── V21__user_add_deleted.sql │ │ │ ├── V22__refactor_channel_status.sql │ │ │ ├── V23__alter_message_add_to_column.sql │ │ │ ├── V24__add_friend_extra.sql │ │ │ ├── V25__create_chatroom_blacklist_manager.sql │ │ │ ├── V26__add_user_messages_line.sql │ │ │ ├── V27__create_device_table.sql │ │ │ ├── V28__add_session_user_type.sql │ │ │ ├── V29__create_receipt_table.sql │ │ │ ├── V2__create_table.sql │ │ │ ├── V30__add_group_member_create_dt.sql │ │ │ ├── V31__add_group_member_count_history_message.sql │ │ │ ├── V32__alter_setting_column_name.sql │ │ │ ├── V33__alter_group_searchable_column.sql │ │ │ ├── V34__create_files_table.sql │ │ │ ├── V35__create_file_transfer_user.sql │ │ │ ├── V36__alter_channel_status_column.sql │ │ │ ├── V37__add_user_messages_mid_index.sql │ │ │ ├── V38__add_user_messages_conv_info.sql │ │ │ ├── V39__add_group_member_friend_request_extra.sql │ │ │ ├── V3__create_sharding_table.sql │ │ │ ├── V40__add_user_messages_cont_type.sql │ │ │ ├── V41__alter_user_setting_key_column.sql │ │ │ ├── V42__create_secret_chat_table.sql │ │ │ ├── V43__add_message_table_conversation_index.sql │ │ │ ├── V44__add_channel_listener_table_member_index.sql │ │ │ ├── V45__add_channel_menu_column.sql │ │ │ ├── V46__add_group_member_mid_index.sql │ │ │ ├── V47__create_super_group.sql │ │ │ ├── V48__group_add_deleted_column.sql │ │ │ ├── V49__add_domain_table.sql │ │ │ ├── V4__create_default_chatroom.sql │ │ │ ├── V50__update_group_member_index.sql │ │ │ ├── V51__add_not_allow_name_setting.sql │ │ │ ├── V52__modify_message_target.sql │ │ │ ├── V53__session_add_ip_column.sql │ │ │ ├── V54__add_group_member_index.sql │ │ │ ├── V55__create_conference_table.sql │ │ │ ├── V56__create_join_group_request_table.sql │ │ │ ├── V57__create_friend_index.sql │ │ │ ├── V5__create_default_robot.sql │ │ │ ├── V6__add_friend_alias.sql │ │ │ ├── V7__add_createtime_user_group_table.sql │ │ │ ├── V8__add_content_type_in_messages.sql │ │ │ └── V9__add_sensitive_messages.sql │ │ ├── mysql/ │ │ │ ├── V10__create_default_admin.sql │ │ │ ├── V11__alter_device_token.sql │ │ │ ├── V12__add_group_control_columns.sql │ │ │ ├── V13__create_session_table.sql │ │ │ ├── V14__alter_createtime_user_group_table.sql │ │ │ ├── V15__alter_session_table_time.sql │ │ │ ├── V16__update_message_dt_gmt8.sql │ │ │ ├── V17__add_default_sensitive_word.sql │ │ │ ├── V18__create_settings_table.sql │ │ │ ├── V19__add_id_for_sensitive_word.sql │ │ │ ├── V1__baseline.sql │ │ │ ├── V20__alter_voip_token_length.sql │ │ │ ├── V21__add_friend_blocked.sql │ │ │ ├── V22__add_user_session_token_index.sql │ │ │ ├── V23__add_friend_request_index.sql │ │ │ ├── V24__add_user_session_uid_index.sql │ │ │ ├── V25__user_session_add_deleted.sql │ │ │ ├── V26__user_add_deleted.sql │ │ │ ├── V27__refactor_channel_status.sql │ │ │ ├── V28__alter_message_add_to_column.sql │ │ │ ├── V29__add_friend_extra.sql │ │ │ ├── V2__create_table.sql │ │ │ ├── V30__create_chatroom_blacklist_manager.sql │ │ │ ├── V31__add_user_messages_line.sql │ │ │ ├── V32__create_device_table.sql │ │ │ ├── V33__add_session_user_type.sql │ │ │ ├── V34__create_receipt_table.sql │ │ │ ├── V35__add_group_member_create_dt.sql │ │ │ ├── V36__add_group_member_count_history_message.sql │ │ │ ├── V37__alter_setting_column_name.sql │ │ │ ├── V38__alter_group_searchable_column.sql │ │ │ ├── V39__create_files_table.sql │ │ │ ├── V3__create_sharding_table.sql │ │ │ ├── V40__create_file_transfer_user.sql │ │ │ ├── V41__alter_channel_status_column.sql │ │ │ ├── V42__add_user_messages_mid_index.sql │ │ │ ├── V43__add_user_messages_conv_info.sql │ │ │ ├── V44__add_group_member_friend_request_extra.sql │ │ │ ├── V45__add_user_messages_cont_type.sql │ │ │ ├── V46__utf8mb4_unicode_ci_to_utf8mb4_bin.sql │ │ │ ├── V47__fix_read_report_error.sql │ │ │ ├── V48__alter_user_setting_key_column.sql │ │ │ ├── V49__create_secret_chat_table.sql │ │ │ ├── V4__create_default_chatroom.sql │ │ │ ├── V50__add_message_table_conversation_index.sql │ │ │ ├── V51__add_channel_listener_table_member_index.sql │ │ │ ├── V52__add_channel_menu_column.sql │ │ │ ├── V53__add_group_member_mid_index.sql │ │ │ ├── V54__create_super_group.sql │ │ │ ├── V55__group_add_deleted_column.sql │ │ │ ├── V56__add_domain_table.sql │ │ │ ├── V57__update_group_member_index.sql │ │ │ ├── V58__reupdate_group_member_index.sql │ │ │ ├── V59__add_no_allow_name_setting.sql │ │ │ ├── V5__create_default_robot.sql │ │ │ ├── V60__modify_messages_target.sql │ │ │ ├── V61__session_add_ip_column.sql │ │ │ ├── V64__add_group_member_index.sql │ │ │ ├── V65__create_conference_table.sql │ │ │ ├── V66__create_join_group_request_table.sql │ │ │ ├── V67__create_friend_index.sql │ │ │ ├── V6__add_friend_alias.sql │ │ │ ├── V7__add_createtime_user_group_table.sql │ │ │ ├── V8__add_content_type_in_messages.sql │ │ │ └── V9__add_sensitive_messages.sql │ │ └── 重要!!!必看!!!.txt │ ├── nginx/ │ │ └── imserver.conf │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ ├── cn/ │ │ │ └── wildfirechat/ │ │ │ ├── push/ │ │ │ │ ├── PushMessage.java │ │ │ │ └── PushServer.java │ │ │ └── server/ │ │ │ ├── Server.java │ │ │ └── ThreadPoolExecutorWrapper.java │ │ ├── com/ │ │ │ └── xiaoleilu/ │ │ │ └── loServer/ │ │ │ ├── LoFileServer.java │ │ │ ├── LoServer.java │ │ │ ├── RestResult.java │ │ │ ├── ServerSetting.java │ │ │ ├── action/ │ │ │ │ ├── Action.java │ │ │ │ ├── CheckTokenAction.java │ │ │ │ ├── ClassUtil.java │ │ │ │ ├── DefaultIndexAction.java │ │ │ │ ├── FileAction.java │ │ │ │ ├── IMAction.java │ │ │ │ ├── NotFoundAction.java │ │ │ │ ├── RouteAction.java │ │ │ │ ├── UnknownErrorAction.java │ │ │ │ ├── UploadFileAction.java │ │ │ │ ├── VersionAction.java │ │ │ │ ├── admin/ │ │ │ │ │ ├── AddFriendRequestAction.java │ │ │ │ │ ├── AddGroupMemberAction.java │ │ │ │ │ ├── AdminAction.java │ │ │ │ │ ├── AliasGetAction.java │ │ │ │ │ ├── AliasPutAction.java │ │ │ │ │ ├── ApplicationGetUserInfoAction.java │ │ │ │ │ ├── BlacklistAction.java │ │ │ │ │ ├── BlacklistGetAction.java │ │ │ │ │ ├── BlockUserAction.java │ │ │ │ │ ├── BroadcastMessageAction.java │ │ │ │ │ ├── ChannelSubscriberAction.java │ │ │ │ │ ├── CheckUserOnlineAction.java │ │ │ │ │ ├── CheckUserSubscribeChannelAction.java │ │ │ │ │ ├── CreateChannelAction.java │ │ │ │ │ ├── CreateChatroomAction.java │ │ │ │ │ ├── CreateGroupAction.java │ │ │ │ │ ├── CreateRobotAction.java │ │ │ │ │ ├── CreateUserAction.java │ │ │ │ │ ├── DestoryChatroomAction.java │ │ │ │ │ ├── DestroyChannelAction.java │ │ │ │ │ ├── DestroyUserAction.java │ │ │ │ │ ├── DismissGroupAction.java │ │ │ │ │ ├── FriendExtraPutAction.java │ │ │ │ │ ├── FriendRelationAction.java │ │ │ │ │ ├── FriendRelationGetAction.java │ │ │ │ │ ├── GetAllUserAction.java │ │ │ │ │ ├── GetBatchUserAction.java │ │ │ │ │ ├── GetChannelAction.java │ │ │ │ │ ├── GetChatroomInfoAction.java │ │ │ │ │ ├── GetChatroomMembersAction.java │ │ │ │ │ ├── GetCommonGroupsAction.java │ │ │ │ │ ├── GetGroupInfoAction.java │ │ │ │ │ ├── GetGroupMemberAction.java │ │ │ │ │ ├── GetGroupMembersAction.java │ │ │ │ │ ├── GetIMTokenAction.java │ │ │ │ │ ├── GetMessageAction.java │ │ │ │ │ ├── GetOnlineUserAction.java │ │ │ │ │ ├── GetRobotAction.java │ │ │ │ │ ├── GetSystemSettingAction.java │ │ │ │ │ ├── GetUploadUrlAction.java │ │ │ │ │ ├── GetUserAction.java │ │ │ │ │ ├── GetUserBlockListAction.java │ │ │ │ │ ├── GetUserBlockStatusAction.java │ │ │ │ │ ├── GetUserChatroomAction.java │ │ │ │ │ ├── GetUserGroupsAction.java │ │ │ │ │ ├── GetUserGroupsByTypeAction.java │ │ │ │ │ ├── GetUserOnlineCountAction.java │ │ │ │ │ ├── GetUserRobotsAction.java │ │ │ │ │ ├── GetUserSessionsAction.java │ │ │ │ │ ├── GetUsersByEmailAction.java │ │ │ │ │ ├── HealthAction.java │ │ │ │ │ ├── KickoffGroupMemberAction.java │ │ │ │ │ ├── KickoffUserClientAction.java │ │ │ │ │ ├── ModifyGroupInfoAction.java │ │ │ │ │ ├── ModifyGroupMemberAliasAction.java │ │ │ │ │ ├── ModifyGroupMemberExtraAction.java │ │ │ │ │ ├── MulticastMessageAction.java │ │ │ │ │ ├── PutSystemSettingAction.java │ │ │ │ │ ├── QuitGroupMemberAction.java │ │ │ │ │ ├── RecallMessageAction.java │ │ │ │ │ ├── RecallMultiCastMessageAction.java │ │ │ │ │ ├── RelationGetAction.java │ │ │ │ │ ├── SendMessageAction.java │ │ │ │ │ ├── SensitiveWordAddAction.java │ │ │ │ │ ├── SensitiveWordDeleteAction.java │ │ │ │ │ ├── SensitiveWordQueryAction.java │ │ │ │ │ ├── SetGroupManagerAction.java │ │ │ │ │ ├── TransferGroupAction.java │ │ │ │ │ └── UpdateUserAction.java │ │ │ │ ├── channel/ │ │ │ │ │ ├── ApplicationGetUserInfoAction.java │ │ │ │ │ ├── ChannelAction.java │ │ │ │ │ ├── GetChannelAction.java │ │ │ │ │ ├── GetChannelSubscribersAction.java │ │ │ │ │ ├── GetIsChannelSubscriberAction.java │ │ │ │ │ ├── GetUserAction.java │ │ │ │ │ ├── ModifyChannelProfileAction.java │ │ │ │ │ ├── SendMessageAction.java │ │ │ │ │ └── SubscriberChannelAction.java │ │ │ │ └── robot/ │ │ │ │ ├── AddGroupMemberAction.java │ │ │ │ ├── ApplicationGetUserInfoAction.java │ │ │ │ ├── CreateGroupAction.java │ │ │ │ ├── DeleteCallbackAction.java │ │ │ │ ├── DismissGroupAction.java │ │ │ │ ├── GetCallbackAction.java │ │ │ │ ├── GetGroupInfoAction.java │ │ │ │ ├── GetGroupMemberAction.java │ │ │ │ ├── GetGroupMembersAction.java │ │ │ │ ├── GetProfileAction.java │ │ │ │ ├── GetUploadUrlAction.java │ │ │ │ ├── GetUserAction.java │ │ │ │ ├── KickoffGroupMemberAction.java │ │ │ │ ├── ModifyGroupInfoAction.java │ │ │ │ ├── ModifyGroupMemberAliasAction.java │ │ │ │ ├── ModifyGroupMemberExtraAction.java │ │ │ │ ├── QuitGroupMemberAction.java │ │ │ │ ├── ReplyMessageAction.java │ │ │ │ ├── RobotAction.java │ │ │ │ ├── SendMessageAction.java │ │ │ │ ├── SetCallbackAction.java │ │ │ │ ├── TransferGroupAction.java │ │ │ │ └── UpdateProfileAction.java │ │ │ ├── annotation/ │ │ │ │ ├── HttpMethod.java │ │ │ │ ├── RequireAuthentication.java │ │ │ │ └── Route.java │ │ │ ├── exception/ │ │ │ │ └── ServerSettingException.java │ │ │ ├── filter/ │ │ │ │ └── Filter.java │ │ │ ├── handler/ │ │ │ │ ├── ActionHandler.java │ │ │ │ ├── AdminActionHandler.java │ │ │ │ ├── HttpChunkContentCompressor.java │ │ │ │ ├── HttpFileServerController.java │ │ │ │ ├── HttpFileServerHandler.java │ │ │ │ ├── HttpResponseHelper.java │ │ │ │ ├── IMActionHandler.java │ │ │ │ ├── Request.java │ │ │ │ └── Response.java │ │ │ ├── listener/ │ │ │ │ └── FileProgressiveFutureListener.java │ │ │ └── model/ │ │ │ └── FriendData.java │ │ ├── io/ │ │ │ ├── moquette/ │ │ │ │ ├── BrokerConstants.java │ │ │ │ ├── connections/ │ │ │ │ │ ├── IConnectionsManager.java │ │ │ │ │ ├── MqttConnectionMetrics.java │ │ │ │ │ └── MqttSession.java │ │ │ │ ├── imhandler/ │ │ │ │ │ ├── AddFriendHandler.java │ │ │ │ │ ├── AddGroupMember.java │ │ │ │ │ ├── BlackListRequestHandler.java │ │ │ │ │ ├── BroadcastMessageHandler.java │ │ │ │ │ ├── ChannelListenMember.java │ │ │ │ │ ├── ChannelListenedListHandler.java │ │ │ │ │ ├── ChannelSearchHandler.java │ │ │ │ │ ├── ConfigApplicationHandler.java │ │ │ │ │ ├── CreateChannelHandler.java │ │ │ │ │ ├── CreateGroupHandler.java │ │ │ │ │ ├── DeleteFriendHandler.java │ │ │ │ │ ├── DestroyChannelHandler.java │ │ │ │ │ ├── DestroyUserHandler.java │ │ │ │ │ ├── DisconnectHandler.java │ │ │ │ │ ├── DismissGroupHandler.java │ │ │ │ │ ├── FriendPullHandler.java │ │ │ │ │ ├── FriendRequestPullHandler.java │ │ │ │ │ ├── GetApplicationTokenHandler.java │ │ │ │ │ ├── GetChannelInfoHandler.java │ │ │ │ │ ├── GetChatroomInfoHandler.java │ │ │ │ │ ├── GetChatroomMemberHandler.java │ │ │ │ │ ├── GetCommonGroupsHandler.java │ │ │ │ │ ├── GetGroupInfoHandler.java │ │ │ │ │ ├── GetGroupMemberHandler.java │ │ │ │ │ ├── GetMediaUploadTokenHandler.java │ │ │ │ │ ├── GetMyGroupsHandler.java │ │ │ │ │ ├── GetQiniuUploadTokenHandler.java │ │ │ │ │ ├── GetTokenHandler.java │ │ │ │ │ ├── GetUserInfoHandler.java │ │ │ │ │ ├── GetUserSettingHandler.java │ │ │ │ │ ├── GroupHandler.java │ │ │ │ │ ├── HandleFriendRequestHandler.java │ │ │ │ │ ├── Handler.java │ │ │ │ │ ├── IMHandler.java │ │ │ │ │ ├── JoinChatroomHandler.java │ │ │ │ │ ├── KickoffGroupMember.java │ │ │ │ │ ├── KickoffPCClientHandler.java │ │ │ │ │ ├── LoadRemoteMessagesHandler.java │ │ │ │ │ ├── ModifyChannelInfoHandler.java │ │ │ │ │ ├── ModifyGroupAliasHandler.java │ │ │ │ │ ├── ModifyGroupInfoHandler.java │ │ │ │ │ ├── ModifyGroupMemberAliasHandler.java │ │ │ │ │ ├── ModifyGroupMemberExtraHandler.java │ │ │ │ │ ├── ModifyMyInfoHandler.java │ │ │ │ │ ├── MultiCastMessageHandler.java │ │ │ │ │ ├── PullMessageHandler.java │ │ │ │ │ ├── PutUserSettingHandler.java │ │ │ │ │ ├── QuitChatroomHandler.java │ │ │ │ │ ├── QuitGroupHandler.java │ │ │ │ │ ├── RecallMessageHandler.java │ │ │ │ │ ├── RecallMultiCastMessageHandler.java │ │ │ │ │ ├── ReplyMessageHandler.java │ │ │ │ │ ├── RouteHandler.java │ │ │ │ │ ├── SendMessageHandler.java │ │ │ │ │ ├── SetFriendAliasRequestHandler.java │ │ │ │ │ ├── SetFriendExtraHandler.java │ │ │ │ │ ├── SetGroupManagerHandler.java │ │ │ │ │ ├── SyncFriendRequestUnreadHandler.java │ │ │ │ │ ├── TransferChannelHandler.java │ │ │ │ │ ├── TransferGroupHandler.java │ │ │ │ │ ├── UploadDeviceTokenHandler.java │ │ │ │ │ └── UserSearchHandler.java │ │ │ │ ├── interception/ │ │ │ │ │ ├── InterceptHandler.java │ │ │ │ │ ├── Interceptor.java │ │ │ │ │ └── messages/ │ │ │ │ │ ├── InterceptAbstractMessage.java │ │ │ │ │ ├── InterceptAcknowledgedMessage.java │ │ │ │ │ ├── InterceptConnectMessage.java │ │ │ │ │ ├── InterceptConnectionLostMessage.java │ │ │ │ │ ├── InterceptDisconnectMessage.java │ │ │ │ │ ├── InterceptMessage.java │ │ │ │ │ └── InterceptPublishMessage.java │ │ │ │ ├── logging/ │ │ │ │ │ └── LoggingUtils.java │ │ │ │ ├── persistence/ │ │ │ │ │ ├── ChannelLoader.java │ │ │ │ │ ├── ChatroomLoader.java │ │ │ │ │ ├── DatabaseStore.java │ │ │ │ │ ├── GroupLoader.java │ │ │ │ │ ├── MemoryMessagesStore.java │ │ │ │ │ ├── MemorySessionStore.java │ │ │ │ │ ├── MemoryStorageService.java │ │ │ │ │ ├── MessageLoader.java │ │ │ │ │ ├── RobotLoader.java │ │ │ │ │ ├── ServerAPIHelper.java │ │ │ │ │ ├── UserClientEntry.java │ │ │ │ │ ├── UserLoader.java │ │ │ │ │ ├── UserStatusLoader.java │ │ │ │ │ └── remote/ │ │ │ │ │ └── RequestInfo.java │ │ │ │ ├── server/ │ │ │ │ │ ├── ConnectionDescriptor.java │ │ │ │ │ ├── ConnectionDescriptorStore.java │ │ │ │ │ ├── Constants.java │ │ │ │ │ ├── DefaultMoquetteSslContextCreator.java │ │ │ │ │ ├── Server.java │ │ │ │ │ ├── ServerAcceptor.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── ClasspathResourceLoader.java │ │ │ │ │ │ ├── ConfigurationParser.java │ │ │ │ │ │ ├── FileResourceLoader.java │ │ │ │ │ │ ├── IConfig.java │ │ │ │ │ │ ├── IResourceLoader.java │ │ │ │ │ │ ├── MediaServerConfig.java │ │ │ │ │ │ ├── MemoryConfig.java │ │ │ │ │ │ └── ResourceLoaderConfig.java │ │ │ │ │ └── netty/ │ │ │ │ │ ├── AutoFlushHandler.java │ │ │ │ │ ├── MoquetteIdleTimeoutHandler.java │ │ │ │ │ ├── NettyAcceptor.java │ │ │ │ │ ├── NettyMQTTHandler.java │ │ │ │ │ ├── NettyUtils.java │ │ │ │ │ └── metrics/ │ │ │ │ │ ├── BytesMetrics.java │ │ │ │ │ ├── BytesMetricsCollector.java │ │ │ │ │ ├── BytesMetricsHandler.java │ │ │ │ │ ├── MQTTMessageLogger.java │ │ │ │ │ ├── MessageMetrics.java │ │ │ │ │ ├── MessageMetricsCollector.java │ │ │ │ │ └── MessageMetricsHandler.java │ │ │ │ └── spi/ │ │ │ │ ├── ClientSession.java │ │ │ │ ├── IMatchingCondition.java │ │ │ │ ├── IMessagesStore.java │ │ │ │ ├── IMessaging.java │ │ │ │ ├── ISessionsStore.java │ │ │ │ ├── IStore.java │ │ │ │ ├── MessageGUID.java │ │ │ │ ├── impl/ │ │ │ │ │ ├── BrokerInterceptor.java │ │ │ │ │ ├── DebugUtils.java │ │ │ │ │ ├── DesUtil.java │ │ │ │ │ ├── InternalRepublisher.java │ │ │ │ │ ├── MessagesPublisher.java │ │ │ │ │ ├── PersistentQueueMessageSender.java │ │ │ │ │ ├── ProtocolProcessor.java │ │ │ │ │ ├── ProtocolProcessorBootstrapper.java │ │ │ │ │ ├── Qos1PublishHandler.java │ │ │ │ │ ├── QosPublishHandler.java │ │ │ │ │ ├── Utils.java │ │ │ │ │ ├── security/ │ │ │ │ │ │ ├── ACLFileParser.java │ │ │ │ │ │ ├── AES.java │ │ │ │ │ │ ├── AcceptAllAuthenticator.java │ │ │ │ │ │ ├── Authorization.java │ │ │ │ │ │ ├── AuthorizationsCollector.java │ │ │ │ │ │ ├── DBAuthenticator.java │ │ │ │ │ │ ├── DenyAllAuthorizator.java │ │ │ │ │ │ ├── FileAuthenticator.java │ │ │ │ │ │ ├── ITokenGenerator.java │ │ │ │ │ │ ├── PermitAllAuthorizator.java │ │ │ │ │ │ ├── ResourceAuthenticator.java │ │ │ │ │ │ └── TokenAuthenticator.java │ │ │ │ │ └── subscriptions/ │ │ │ │ │ ├── Token.java │ │ │ │ │ └── Topic.java │ │ │ │ └── security/ │ │ │ │ ├── DES.java │ │ │ │ ├── IAuthenticator.java │ │ │ │ ├── IAuthorizator.java │ │ │ │ ├── ISslContextCreator.java │ │ │ │ └── Tokenor.java │ │ │ └── netty/ │ │ │ └── handler/ │ │ │ └── codec/ │ │ │ └── mqtt/ │ │ │ ├── MqttCodecUtil.java │ │ │ ├── MqttConnAckMessage.java │ │ │ ├── MqttConnAckVariableHeader.java │ │ │ ├── MqttConnectAckPayload.java │ │ │ ├── MqttConnectMessage.java │ │ │ ├── MqttConnectPayload.java │ │ │ ├── MqttConnectReturnCode.java │ │ │ ├── MqttConnectVariableHeader.java │ │ │ ├── MqttConstant.java │ │ │ ├── MqttDecoder.java │ │ │ ├── MqttEncoder.java │ │ │ ├── MqttFixedHeader.java │ │ │ ├── MqttIdentifierRejectedException.java │ │ │ ├── MqttMessage.java │ │ │ ├── MqttMessageBuilders.java │ │ │ ├── MqttMessageFactory.java │ │ │ ├── MqttMessageIdAndPropertiesVariableHeader.java │ │ │ ├── MqttMessageIdVariableHeader.java │ │ │ ├── MqttMessageType.java │ │ │ ├── MqttProperties.java │ │ │ ├── MqttPubAckMessage.java │ │ │ ├── MqttPubReplyMessageVariableHeader.java │ │ │ ├── MqttPublishMessage.java │ │ │ ├── MqttPublishVariableHeader.java │ │ │ ├── MqttQoS.java │ │ │ ├── MqttReasonCodeAndPropertiesVariableHeader.java │ │ │ ├── MqttSubAckMessage.java │ │ │ ├── MqttSubAckPayload.java │ │ │ ├── MqttSubscribeMessage.java │ │ │ ├── MqttSubscribePayload.java │ │ │ ├── MqttSubscriptionOption.java │ │ │ ├── MqttTopicSubscription.java │ │ │ ├── MqttUnacceptableProtocolVersionException.java │ │ │ ├── MqttUnsubAckMessage.java │ │ │ ├── MqttUnsubAckPayload.java │ │ │ ├── MqttUnsubscribeMessage.java │ │ │ ├── MqttUnsubscribePayload.java │ │ │ ├── MqttVersion.java │ │ │ └── package-info.java │ │ └── win/ │ │ └── liyufan/ │ │ └── im/ │ │ ├── DBUtil.java │ │ ├── FrequencyLimistCounter.java │ │ ├── GitRepositoryState.java │ │ ├── GsonUtil.java │ │ ├── HttpUtils.java │ │ ├── IDUtils.java │ │ ├── IMTopic.java │ │ ├── MessageBundle.java │ │ ├── MessageShardingUtil.java │ │ ├── RateLimiter.java │ │ ├── SensitiveFilter.java │ │ ├── SpinLock.java │ │ ├── UUIDGenerator.java │ │ ├── UserSettingScope.java │ │ ├── Utility.java │ │ └── extended/ │ │ └── mqttmessage/ │ │ └── ModifiedMqttPubAckMessage.java │ └── resources/ │ ├── c3p0-config.xml │ └── log4j2.xml ├── build.sh ├── checkstyle-suppressions.xml ├── checkstyle.xml ├── common/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── cn/ │ └── wildfirechat/ │ ├── common/ │ │ ├── APIPath.java │ │ ├── ErrorCode.java │ │ └── IMExceptionEvent.java │ ├── pojos/ │ │ ├── ArticleContent.java │ │ ├── BroadMessageData.java │ │ ├── BroadMessageResult.java │ │ ├── ChannelUpdateEvent.java │ │ ├── ChatroomMemberUpdateEvent.java │ │ ├── ChatroomUpdateEvent.java │ │ ├── ConferenceCreateEvent.java │ │ ├── ConferenceDestroyEvent.java │ │ ├── ConferenceJoinEvent.java │ │ ├── ConferenceLeaveEvent.java │ │ ├── ConferencePublishEvent.java │ │ ├── ConferenceUnpublishEvent.java │ │ ├── Conversation.java │ │ ├── DeleteMessageData.java │ │ ├── FilesPojo.java │ │ ├── ForwardDeviceMessageData.java │ │ ├── GetConversationFilesPojo.java │ │ ├── GetOnlineUserCountResult.java │ │ ├── GetOnlineUserRequest.java │ │ ├── GetOnlineUserResult.java │ │ ├── GetUserFilesPojo.java │ │ ├── GetUserSessionResult.java │ │ ├── GroupMemberUpdateEvent.java │ │ ├── GroupNotificationBinaryContent.java │ │ ├── GroupUpdateEvent.java │ │ ├── HealthCheckResult.java │ │ ├── InputAddFriendRequest.java │ │ ├── InputAddGroupMember.java │ │ ├── InputApplicationGetUserInfo.java │ │ ├── InputBlacklistRequest.java │ │ ├── InputChannelId.java │ │ ├── InputChannelSubscribe.java │ │ ├── InputChatroomId.java │ │ ├── InputChatroomMute.java │ │ ├── InputClearUserMessages.java │ │ ├── InputConferenceRequest.java │ │ ├── InputCountOffset.java │ │ ├── InputCreateChannel.java │ │ ├── InputCreateChatroom.java │ │ ├── InputCreateDevice.java │ │ ├── InputCreateGroup.java │ │ ├── InputCreateRobot.java │ │ ├── InputDestoryChatroom.java │ │ ├── InputDestroyUser.java │ │ ├── InputDeviceId.java │ │ ├── InputDismissGroup.java │ │ ├── InputGetAlias.java │ │ ├── InputGetChannelInfo.java │ │ ├── InputGetChatroomInfo.java │ │ ├── InputGetConvReadTime.java │ │ ├── InputGetFriendList.java │ │ ├── InputGetGroup.java │ │ ├── InputGetGroupMember.java │ │ ├── InputGetPresignedUploadUrl.java │ │ ├── InputGetToken.java │ │ ├── InputGetUserGroupByType.java │ │ ├── InputGetUserInfo.java │ │ ├── InputGetUserList.java │ │ ├── InputGetUserSK.java │ │ ├── InputGroupBase.java │ │ ├── InputHandleFriendRequest.java │ │ ├── InputIntValue.java │ │ ├── InputKickoffGroupMember.java │ │ ├── InputMessageUid.java │ │ ├── InputModifyChannelInfo.java │ │ ├── InputModifyGroupInfo.java │ │ ├── InputMuteGroupMember.java │ │ ├── InputOutputDomainInfo.java │ │ ├── InputOutputDomainInfoList.java │ │ ├── InputOutputSensitiveWords.java │ │ ├── InputOutputUserBlockStatus.java │ │ ├── InputOutputUserInfo.java │ │ ├── InputQuitGroup.java │ │ ├── InputRobotId.java │ │ ├── InputSetChatroomBlacklist.java │ │ ├── InputSetChatroomManager.java │ │ ├── InputSetGroupManager.java │ │ ├── InputSetGroupMemberAlias.java │ │ ├── InputSetGroupMemberExtra.java │ │ ├── InputStringList.java │ │ ├── InputStringValue.java │ │ ├── InputSubscribeChannel.java │ │ ├── InputTransferGroup.java │ │ ├── InputUpdateAlias.java │ │ ├── InputUpdateFriendExtra.java │ │ ├── InputUpdateFriendStatusRequest.java │ │ ├── InputUpdateUserInfo.java │ │ ├── InputUserConversation.java │ │ ├── InputUserId.java │ │ ├── InputUserLogin.java │ │ ├── IntStringPairPojo.java │ │ ├── LongPojo.java │ │ ├── MessagePayload.java │ │ ├── MultiMessageResult.java │ │ ├── MulticastMessageData.java │ │ ├── MyInfoType.java │ │ ├── OutputApplicationConfigData.java │ │ ├── OutputApplicationUserInfo.java │ │ ├── OutputBooleanValue.java │ │ ├── OutputChatroomBlackInfos.java │ │ ├── OutputCheckUserOnline.java │ │ ├── OutputClient.java │ │ ├── OutputCreateChannel.java │ │ ├── OutputCreateChatroom.java │ │ ├── OutputCreateDevice.java │ │ ├── OutputCreateGroupResult.java │ │ ├── OutputCreateRobot.java │ │ ├── OutputCreateUser.java │ │ ├── OutputDevice.java │ │ ├── OutputDeviceHost.java │ │ ├── OutputDeviceList.java │ │ ├── OutputGetAlias.java │ │ ├── OutputGetChannelInfo.java │ │ ├── OutputGetChatroomInfo.java │ │ ├── OutputGetFriendList.java │ │ ├── OutputGetIMTokenData.java │ │ ├── OutputGetUserList.java │ │ ├── OutputGroupIds.java │ │ ├── OutputGroupMemberList.java │ │ ├── OutputLoginData.java │ │ ├── OutputMessageData.java │ │ ├── OutputNotifyChannelSubscribeStatus.java │ │ ├── OutputPresignedUploadUrl.java │ │ ├── OutputReadData.java │ │ ├── OutputRecallMessageData.java │ │ ├── OutputRobot.java │ │ ├── OutputRouteData.java │ │ ├── OutputStringList.java │ │ ├── OutputTimestamp.java │ │ ├── OutputUserBlockStatusList.java │ │ ├── OutputUserChatroom.java │ │ ├── OutputUserInfoList.java │ │ ├── OutputUserStatus.java │ │ ├── PojoChannelMenu.java │ │ ├── PojoConferenceCreate.java │ │ ├── PojoConferenceInfo.java │ │ ├── PojoConferenceInfoList.java │ │ ├── PojoConferenceParticipant.java │ │ ├── PojoConferenceParticipantList.java │ │ ├── PojoConferenceRecording.java │ │ ├── PojoConferenceRoomId.java │ │ ├── PojoConferenceRtpForwardReq.java │ │ ├── PojoConferenceRtpForwarders.java │ │ ├── PojoConferenceStopRtpForwardReq.java │ │ ├── PojoGroup.java │ │ ├── PojoGroupInfo.java │ │ ├── PojoGroupInfoList.java │ │ ├── PojoGroupMember.java │ │ ├── RecallMessageData.java │ │ ├── RecallMultiCastMessageData.java │ │ ├── RelationPojo.java │ │ ├── RelationUpdateEvent.java │ │ ├── ReplyMessageData.java │ │ ├── RepublishChannelMessageData.java │ │ ├── RobotCallbackPojo.java │ │ ├── SendChannelMessageData.java │ │ ├── SendMessageData.java │ │ ├── SendMessageResult.java │ │ ├── StringPairPojo.java │ │ ├── SystemSettingPojo.java │ │ ├── UpdateMessageContentData.java │ │ ├── UserOnlineStatus.java │ │ ├── UserSettingPojo.java │ │ ├── mesh/ │ │ │ ├── MeshRestResult.java │ │ │ ├── PojoAddFriendReq.java │ │ │ ├── PojoAddGroupMember.java │ │ │ ├── PojoAddJoinGroupRequest.java │ │ │ ├── PojoDeleteFriend.java │ │ │ ├── PojoDismissGroup.java │ │ │ ├── PojoDomainPingRequest.java │ │ │ ├── PojoDomainPingResponse.java │ │ │ ├── PojoGroupUpdated.java │ │ │ ├── PojoHandleFriendRequestReq.java │ │ │ ├── PojoKickoffGroupMember.java │ │ │ ├── PojoModifyGroupInfo.java │ │ │ ├── PojoPublishMessageReq.java │ │ │ ├── PojoQuitGroup.java │ │ │ ├── PojoRecallMessageReq.java │ │ │ ├── PojoSearchUserReq.java │ │ │ ├── PojoSearchUserRes.java │ │ │ ├── PojoSendMessageReq.java │ │ │ ├── PojoString.java │ │ │ ├── PojoStringList.java │ │ │ ├── PojoTransferGroup.java │ │ │ ├── PojoUserConferenceEvent.java │ │ │ ├── PojoUserConferenceRequest.java │ │ │ └── PojoUserConferenceResponse.java │ │ └── moments/ │ │ ├── CommentMsgPojo.java │ │ ├── CommentPojo.java │ │ ├── FeedPojo.java │ │ ├── FeedsPojo.java │ │ ├── IdPojo.java │ │ ├── MediaEntry.java │ │ ├── MomentProfilePojo.java │ │ ├── PostFeedResult.java │ │ ├── PullCommentsRequestPojo.java │ │ ├── PullFeedRequestPojo.java │ │ ├── PullOneFeedRequestPojo.java │ │ ├── PullProfileRequestPojo.java │ │ ├── PushProfileListRequestPojo.java │ │ └── PushProfileValueRequestPojo.java │ └── proto/ │ ├── ProtoConstants.java │ └── WFCMessage.java ├── distribution/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── assembly/ │ │ └── assembly.xml │ ├── checker/ │ │ └── README.md │ ├── deb/ │ │ └── control/ │ │ ├── control │ │ ├── postinst │ │ └── postrm │ ├── files/ │ │ └── README.txt │ ├── resources/ │ │ ├── c3p0-config.xml │ │ ├── hazelcast.xml │ │ ├── log4j2.xml │ │ └── wildfirechat.conf │ ├── rpm/ │ │ ├── install.sh │ │ └── uninstall.sh │ └── scripts/ │ ├── stop.sh │ ├── wildfirechat.bat │ └── wildfirechat.sh ├── docker/ │ ├── Dockerfile │ └── README.md ├── flyway_repaire_migrate_38.sql ├── license-eplv10-aslv20.html ├── license_moquette.txt ├── pom.xml ├── release_note.md ├── sdk/ │ ├── README.md │ ├── pom.xml │ ├── sdk_readme.txt │ └── src/ │ └── main/ │ └── java/ │ ├── cn/ │ │ └── wildfirechat/ │ │ └── sdk/ │ │ ├── AdminConfig.java │ │ ├── ChannelAdmin.java │ │ ├── ChannelServiceApi.java │ │ ├── ChatroomAdmin.java │ │ ├── ConferenceAdmin.java │ │ ├── GeneralAdmin.java │ │ ├── GenerateTestData.java │ │ ├── GroupAdmin.java │ │ ├── Main.java │ │ ├── MeshAdmin.java │ │ ├── MessageAdmin.java │ │ ├── MomentsAdmin.java │ │ ├── RelationAdmin.java │ │ ├── RobotService.java │ │ ├── SensitiveAdmin.java │ │ ├── UserAdmin.java │ │ ├── messagecontent/ │ │ │ ├── ArticlesMessageContent.java │ │ │ ├── CallStartMessageContent.java │ │ │ ├── CardMessageContent.java │ │ │ ├── DeleteMessageContent.java │ │ │ ├── FileMessageContent.java │ │ │ ├── ImageMessageContent.java │ │ │ ├── LinkMessageContent.java │ │ │ ├── LocationMessageContent.java │ │ │ ├── MediaMessageContent.java │ │ │ ├── MessageContent.java │ │ │ ├── MessageContentFactory.java │ │ │ ├── MultiCallOngoingMessageContent.java │ │ │ ├── NotDeliveredMessageContent.java │ │ │ ├── PTTSoundMessageContent.java │ │ │ ├── RecallMessageContent.java │ │ │ ├── RichNotificationMessageContent.java │ │ │ ├── SoundMessageContent.java │ │ │ ├── StickerMessageContent.java │ │ │ ├── StreamTextGeneratedMessageContent.java │ │ │ ├── StreamTextGeneratingMessageContent.java │ │ │ ├── TextMessageContent.java │ │ │ ├── TipNotificationMessageContent.java │ │ │ ├── TypingMessageContent.java │ │ │ ├── UnknownMessageContent.java │ │ │ └── VideoMessageContent.java │ │ ├── model/ │ │ │ ├── IMResult.java │ │ │ ├── Message.java │ │ │ └── QuoteInfo.java │ │ └── utilities/ │ │ ├── AdminHttpUtils.java │ │ ├── ChannelHttpUtils.java │ │ ├── ClassUtil.java │ │ ├── HttpUtils.java │ │ ├── JsonUtils.java │ │ └── RobotHttpUtils.java │ └── ikidou/ │ └── reflect/ │ ├── TypeBuilder.java │ ├── TypeToken.java │ ├── exception/ │ │ └── TypeException.java │ └── typeimpl/ │ ├── ParameterizedTypeImpl.java │ └── WildcardTypeImpl.java └── systemd/ ├── README.md └── im-server.service