gitextract_p2lxtd1d/ ├── .babelrc ├── .editorconfig ├── .gitignore ├── .postcssrc.js ├── LICENSE ├── README.md ├── build/ │ ├── build.js │ ├── check-versions.js │ ├── dev-client.js │ ├── dev-server.js │ ├── utils.js │ ├── vue-loader.conf.js │ ├── webpack.base.conf.js │ ├── webpack.dev.conf.js │ └── webpack.prod.conf.js ├── config/ │ ├── dev.env.js │ ├── index.js │ └── prod.env.js ├── index.html ├── index.md ├── package.json ├── src/ │ ├── App.vue │ ├── assets/ │ │ └── fonts/ │ │ ├── iconfont.css │ │ ├── iconfont.js │ │ └── iconfont.json │ ├── components/ │ │ ├── chatlist/ │ │ │ └── chatlist.vue │ │ ├── friendlist/ │ │ │ └── friendlist.vue │ │ ├── info/ │ │ │ └── info.vue │ │ ├── menu/ │ │ │ ├── addtip.vue │ │ │ ├── groupInfo.vue │ │ │ ├── personalCard.vue │ │ │ ├── relayMessage.vue │ │ │ └── rightMenu.vue │ │ ├── message/ │ │ │ └── message.vue │ │ ├── mycard/ │ │ │ └── mycard.vue │ │ ├── search/ │ │ │ └── search.vue │ │ └── text/ │ │ └── text.vue │ ├── constant/ │ │ └── index.js │ ├── main.js │ ├── page/ │ │ ├── chat/ │ │ │ └── chat.vue │ │ ├── friend/ │ │ │ ├── friend.vue │ │ │ └── searchfriend.vue │ │ ├── group/ │ │ │ ├── creategroup.vue │ │ │ └── groupVideoCall.vue │ │ ├── login/ │ │ │ └── login.vue │ │ └── main.vue │ ├── permission.js │ ├── router/ │ │ └── index.js │ ├── store.js │ ├── webrtc/ │ │ ├── callEndReason.js │ │ ├── callSession.js │ │ ├── callState.js │ │ ├── engineCallback.js │ │ ├── groupCallClient.js │ │ ├── message/ │ │ │ ├── callAnswerMessageContent.js │ │ │ ├── callAnswerTMessageContent.js │ │ │ ├── callByeMessageContent.js │ │ │ ├── callModifyMessageContent.js │ │ │ ├── callSignalMessageContent.js │ │ │ └── callStartMessageContent.js │ │ ├── participant.js │ │ ├── sessionCallback.js │ │ └── voipclient.js │ └── websocket/ │ ├── chatManager.js │ ├── future/ │ │ ├── futureResult.js │ │ └── promiseResolve.js │ ├── handler/ │ │ ├── abstractmessagehandler.js │ │ ├── addGroupMemberHandler.js │ │ ├── connectackhandler.js │ │ ├── createGroupHandler.js │ │ ├── dismissGroupHandler.js │ │ ├── friendAddRequestHandler.js │ │ ├── friendRequestHandler.js │ │ ├── getGroupInfoHandler.js │ │ ├── getGroupMemberHandler.js │ │ ├── getMinioUploadUrlHandler.js │ │ ├── getUploadtokenHandler.js │ │ ├── getfriendresultHandler.js │ │ ├── getuserinfoHandler.js │ │ ├── handleFriendRequestHandler.js │ │ ├── kickGroupmemberHandler.js │ │ ├── loadRemoteMessageHander.js │ │ ├── messageHandler.js │ │ ├── modifyMyInfoHandler.js │ │ ├── notifyFriendHandler.js │ │ ├── notifyFriendRequestHandler.js │ │ ├── notifyMessageHandler.js │ │ ├── notifyRecallMessageHandler.js │ │ ├── quitGroupHandler.js │ │ ├── recallMessageHandler.js │ │ ├── receiveMessageHandler.js │ │ ├── searchUserResultHandler.js │ │ ├── sendMessageHandler.js │ │ └── setFriendAliasRequestHandler.js │ ├── index.js │ ├── listener/ │ │ └── onReceiverMessageListener.js │ ├── message/ │ │ ├── fileMessageContent.js │ │ ├── imageMessageContent.js │ │ ├── mediaMessageContent.js │ │ ├── message.js │ │ ├── messageConfig.js │ │ ├── messageContent.js │ │ ├── messageContentMediaType.js │ │ ├── messageContentType.js │ │ ├── messagePayload.js │ │ ├── messageStatus.js │ │ ├── modifyGroupInfoType.js │ │ ├── myInfoType.js │ │ ├── notification/ │ │ │ ├── addGroupMemberNotification.js │ │ │ ├── changeGroupNameNotification.js │ │ │ ├── createGroupNotification.js │ │ │ ├── dismissGroupNotification.js │ │ │ ├── groupNotification.js │ │ │ ├── kickoffGroupMemberNotification.js │ │ │ ├── notificationMessageContent.js │ │ │ ├── quitGroupNotification.js │ │ │ └── recallMessageNotification.js │ │ ├── persistFlag.js │ │ ├── protomessage.js │ │ ├── protomessageContent.js │ │ ├── sendMessage.js │ │ ├── textMessageContent.js │ │ ├── unknownMessageContent.js │ │ ├── unsupportMessageContent.js │ │ ├── videoMessageContent.js │ │ └── websocketprotomessage.js │ ├── model/ │ │ ├── conversation.js │ │ ├── conversationInfo.js │ │ ├── conversationType.js │ │ ├── groupInfo.js │ │ ├── groupMember.js │ │ ├── groupMemberType.js │ │ ├── groupType.js │ │ ├── protoConversationInfo.js │ │ ├── stateConversationInfo.js │ │ ├── stateSelectChatMessage.js │ │ ├── unReadCount.js │ │ └── userInfo.js │ ├── store/ │ │ └── localstore.js │ ├── utils/ │ │ ├── StringUtil.js │ │ ├── aes.js │ │ ├── logger.js │ │ └── timeUtils.js │ └── websocketcli.js └── static/ ├── .gitkeep └── css/ └── reset.css