├── index.md ├── static ├── .gitkeep ├── emoji │ ├── 100.gif │ ├── 101.gif │ ├── 102.gif │ ├── 103.gif │ ├── 104.gif │ ├── 105.gif │ ├── 106.gif │ ├── 107.gif │ ├── 108.gif │ ├── 109.gif │ ├── 110.gif │ ├── 111.gif │ ├── 112.gif │ ├── 113.gif │ ├── 114.gif │ ├── 115.gif │ ├── 116.gif │ ├── 117.gif │ ├── 118.gif │ ├── 119.gif │ ├── 120.gif │ ├── 121.gif │ ├── 122.gif │ ├── 123.gif │ ├── 124.gif │ ├── 125.gif │ ├── 126.gif │ ├── 127.gif │ ├── 128.gif │ ├── 129.gif │ ├── 130.gif │ ├── 131.gif │ ├── 132.gif │ ├── 133.gif │ ├── 134.gif │ ├── 135.gif │ ├── 136.gif │ ├── 137.gif │ ├── 138.gif │ ├── 139.gif │ ├── 140.gif │ ├── 141.gif │ ├── 142.gif │ ├── 143.gif │ ├── 144.gif │ ├── 145.gif │ ├── 146.gif │ ├── 147.gif │ ├── 148.gif │ ├── 149.gif │ ├── 150.gif │ ├── 151.gif │ ├── 152.gif │ ├── 153.gif │ ├── 154.gif │ ├── 155.gif │ ├── 156.gif │ ├── 157.gif │ ├── 158.gif │ ├── 159.gif │ ├── 160.gif │ ├── 161.gif │ ├── 162.gif │ ├── 163.gif │ ├── 164.gif │ ├── 165.gif │ ├── 166.gif │ ├── 167.gif │ ├── 168.gif │ ├── 169.gif │ ├── 170.gif │ ├── 171.gif │ ├── 172.gif │ ├── 173.gif │ ├── 174.gif │ ├── 175.gif │ ├── 176.gif │ ├── 177.gif │ ├── 178.gif │ ├── 179.gif │ ├── 180.gif │ ├── 181.gif │ ├── 182.gif │ ├── 183.gif │ ├── 184.gif │ ├── 185.gif │ ├── 186.gif │ ├── 187.gif │ ├── 188.gif │ ├── 189.gif │ ├── 190.gif │ ├── 191.gif │ ├── 192.gif │ ├── 193.gif │ ├── 194.gif │ ├── 195.gif │ ├── 196.gif │ ├── 197.gif │ ├── 198.gif │ ├── 199.gif │ ├── meinv.png │ ├── shangxin.png │ └── weixiao.png ├── images │ ├── 悟空.jpg │ ├── Guai.jpg │ ├── vue.jpg │ ├── 加菲猫.jpg │ ├── 大飞哥.jpg │ ├── 小姨妈.jpg │ ├── 新之助.jpg │ ├── 萌萌俊.jpg │ ├── father.jpg │ ├── microzz.jpg │ ├── mother.jpg │ ├── orange.jpg │ ├── newfriend.jpg │ └── UserAvatar.jpg └── css │ └── reset.css ├── favicon.ico ├── attachment ├── vue-chat.png ├── vue-chat-pic.png ├── vue-chat-unread.png ├── vue-chat-video.png ├── vue-chat-rtc-audio.png ├── vue-chat-rtc-video.png ├── qq_qrcode_universe_push.jpg └── wechat-full-screen-mode.png ├── src ├── assets │ ├── img │ │ ├── logo.png │ │ └── qrcode.png │ ├── fonts │ │ ├── iconfont.eot │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ ├── iconfont.woff2 │ │ ├── iconfont.json │ │ └── iconfont.css │ └── dark-mode.css ├── page │ ├── group │ │ └── delete.png │ ├── friend │ │ ├── friend.vue │ │ └── searchfriend.vue │ ├── chat │ │ └── chat.vue │ └── main.vue ├── components │ ├── info │ │ ├── man.png │ │ └── woman.png │ ├── search │ │ ├── delete.png │ │ └── search.vue │ ├── menu │ │ ├── addtip.vue │ │ ├── about.vue │ │ ├── rightMenu.vue │ │ └── relayMessage.vue │ ├── friendlist │ │ └── friendlist.vue │ ├── mycard │ │ └── mycard.vue │ └── chatlist │ │ └── chatlist.vue ├── websocket │ ├── model │ │ ├── groupType.js │ │ ├── groupMemberType.js │ │ ├── stateSelectChatMessage.js │ │ ├── stateConversationInfo.js │ │ ├── conversationType.js │ │ ├── unReadCount.js │ │ ├── conversationInfo.js │ │ ├── protoConversationInfo.js │ │ ├── groupMember.js │ │ ├── groupInfo.js │ │ ├── conversation.js │ │ └── userInfo.js │ ├── listener │ │ └── onReceiverMessageListener.js │ ├── handler │ │ ├── messageHandler.js │ │ ├── quitGroupHandler.js │ │ ├── dismissGroupHandler.js │ │ ├── addGroupMemberHandler.js │ │ ├── kickGroupmemberHandler.js │ │ ├── createGroupHandler.js │ │ ├── setFriendAliasRequestHandler.js │ │ ├── recallMessageHandler.js │ │ ├── getMinioUploadUrlHandler.js │ │ ├── modifyMyInfoHandler.js │ │ ├── friendAddRequestHandler.js │ │ ├── searchUserResultHandler.js │ │ ├── handleFriendRequestHandler.js │ │ ├── notifyFriendHandler.js │ │ ├── notifyRecallMessageHandler.js │ │ ├── getGroupMemberHandler.js │ │ ├── getUploadtokenHandler.js │ │ ├── getGroupInfoHandler.js │ │ ├── getfriendresultHandler.js │ │ ├── notifyMessageHandler.js │ │ ├── notifyFriendRequestHandler.js │ │ ├── friendRequestHandler.js │ │ ├── abstractmessagehandler.js │ │ ├── connectackhandler.js │ │ ├── receiveMessageHandler.js │ │ ├── sendMessageHandler.js │ │ └── getuserinfoHandler.js │ ├── utils │ │ ├── logger.js │ │ ├── StringUtil.js │ │ ├── aes.js │ │ └── timeUtils.js │ ├── message │ │ ├── persistFlag.js │ │ ├── modifyGroupInfoType.js │ │ ├── notification │ │ │ ├── groupNotification.js │ │ │ ├── notificationMessageContent.js │ │ │ ├── quitGroupNotification.js │ │ │ ├── recallMessageNotification.js │ │ │ ├── dismissGroupNotification.js │ │ │ ├── changeGroupNameNotification.js │ │ │ ├── createGroupNotification.js │ │ │ ├── kickoffGroupMemberNotification.js │ │ │ └── addGroupMemberNotification.js │ │ ├── sendMessage.js │ │ ├── unsupportMessageContent.js │ │ ├── messageContentMediaType.js │ │ ├── messageStatus.js │ │ ├── myInfoType.js │ │ ├── unknownMessageContent.js │ │ ├── textMessageContent.js │ │ ├── messagePayload.js │ │ ├── videoMessageContent.js │ │ ├── imageMessageContent.js │ │ ├── websocketprotomessage.js │ │ ├── messageContent.js │ │ ├── mediaMessageContent.js │ │ ├── messageContentType.js │ │ ├── protomessageContent.js │ │ ├── protomessage.js │ │ └── message.js │ ├── future │ │ ├── futureResult.js │ │ └── promiseResolve.js │ ├── chatManager.js │ ├── websocketcli.js │ └── store │ │ └── localstore.js ├── webrtc │ ├── engineCallback.js │ ├── callState.js │ ├── sessionCallback.js │ ├── callEndReason.js │ ├── message │ │ ├── callByeMessageContent.js │ │ ├── callSignalMessageContent.js │ │ ├── callModifyMessageContent.js │ │ ├── callAnswerMessageContent.js │ │ ├── callAnswerTMessageContent.js │ │ └── callStartMessageContent.js │ └── callSession.js ├── permission.js ├── main.js ├── router │ └── index.js ├── App.vue └── constant │ └── index.js ├── .gitignore ├── .editorconfig ├── .postcssrc.js ├── .babelrc ├── index.html ├── config ├── prod.env.js ├── dev.env.js └── index.js ├── .github └── workflows │ └── deploy.yml ├── ABOUT_FEATURE.md ├── package.json ├── DARK_MODE_FEATURE.md └── dev.log /index.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/favicon.ico -------------------------------------------------------------------------------- /static/emoji/100.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/100.gif -------------------------------------------------------------------------------- /static/emoji/101.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/101.gif -------------------------------------------------------------------------------- /static/emoji/102.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/102.gif -------------------------------------------------------------------------------- /static/emoji/103.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/103.gif -------------------------------------------------------------------------------- /static/emoji/104.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/104.gif -------------------------------------------------------------------------------- /static/emoji/105.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/105.gif -------------------------------------------------------------------------------- /static/emoji/106.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/106.gif -------------------------------------------------------------------------------- /static/emoji/107.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/107.gif -------------------------------------------------------------------------------- /static/emoji/108.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/108.gif -------------------------------------------------------------------------------- /static/emoji/109.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/109.gif -------------------------------------------------------------------------------- /static/emoji/110.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/110.gif -------------------------------------------------------------------------------- /static/emoji/111.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/111.gif -------------------------------------------------------------------------------- /static/emoji/112.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/112.gif -------------------------------------------------------------------------------- /static/emoji/113.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/113.gif -------------------------------------------------------------------------------- /static/emoji/114.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/114.gif -------------------------------------------------------------------------------- /static/emoji/115.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/115.gif -------------------------------------------------------------------------------- /static/emoji/116.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/116.gif -------------------------------------------------------------------------------- /static/emoji/117.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/117.gif -------------------------------------------------------------------------------- /static/emoji/118.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/118.gif -------------------------------------------------------------------------------- /static/emoji/119.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/119.gif -------------------------------------------------------------------------------- /static/emoji/120.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/120.gif -------------------------------------------------------------------------------- /static/emoji/121.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/121.gif -------------------------------------------------------------------------------- /static/emoji/122.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/122.gif -------------------------------------------------------------------------------- /static/emoji/123.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/123.gif -------------------------------------------------------------------------------- /static/emoji/124.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/124.gif -------------------------------------------------------------------------------- /static/emoji/125.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/125.gif -------------------------------------------------------------------------------- /static/emoji/126.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/126.gif -------------------------------------------------------------------------------- /static/emoji/127.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/127.gif -------------------------------------------------------------------------------- /static/emoji/128.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/128.gif -------------------------------------------------------------------------------- /static/emoji/129.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/129.gif -------------------------------------------------------------------------------- /static/emoji/130.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/130.gif -------------------------------------------------------------------------------- /static/emoji/131.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/131.gif -------------------------------------------------------------------------------- /static/emoji/132.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/132.gif -------------------------------------------------------------------------------- /static/emoji/133.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/133.gif -------------------------------------------------------------------------------- /static/emoji/134.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/134.gif -------------------------------------------------------------------------------- /static/emoji/135.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/135.gif -------------------------------------------------------------------------------- /static/emoji/136.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/136.gif -------------------------------------------------------------------------------- /static/emoji/137.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/137.gif -------------------------------------------------------------------------------- /static/emoji/138.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/138.gif -------------------------------------------------------------------------------- /static/emoji/139.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/139.gif -------------------------------------------------------------------------------- /static/emoji/140.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/140.gif -------------------------------------------------------------------------------- /static/emoji/141.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/141.gif -------------------------------------------------------------------------------- /static/emoji/142.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/142.gif -------------------------------------------------------------------------------- /static/emoji/143.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/143.gif -------------------------------------------------------------------------------- /static/emoji/144.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/144.gif -------------------------------------------------------------------------------- /static/emoji/145.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/145.gif -------------------------------------------------------------------------------- /static/emoji/146.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/146.gif -------------------------------------------------------------------------------- /static/emoji/147.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/147.gif -------------------------------------------------------------------------------- /static/emoji/148.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/148.gif -------------------------------------------------------------------------------- /static/emoji/149.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/149.gif -------------------------------------------------------------------------------- /static/emoji/150.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/150.gif -------------------------------------------------------------------------------- /static/emoji/151.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/151.gif -------------------------------------------------------------------------------- /static/emoji/152.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/152.gif -------------------------------------------------------------------------------- /static/emoji/153.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/153.gif -------------------------------------------------------------------------------- /static/emoji/154.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/154.gif -------------------------------------------------------------------------------- /static/emoji/155.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/155.gif -------------------------------------------------------------------------------- /static/emoji/156.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/156.gif -------------------------------------------------------------------------------- /static/emoji/157.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/157.gif -------------------------------------------------------------------------------- /static/emoji/158.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/158.gif -------------------------------------------------------------------------------- /static/emoji/159.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/159.gif -------------------------------------------------------------------------------- /static/emoji/160.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/160.gif -------------------------------------------------------------------------------- /static/emoji/161.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/161.gif -------------------------------------------------------------------------------- /static/emoji/162.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/162.gif -------------------------------------------------------------------------------- /static/emoji/163.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/163.gif -------------------------------------------------------------------------------- /static/emoji/164.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/164.gif -------------------------------------------------------------------------------- /static/emoji/165.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/165.gif -------------------------------------------------------------------------------- /static/emoji/166.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/166.gif -------------------------------------------------------------------------------- /static/emoji/167.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/167.gif -------------------------------------------------------------------------------- /static/emoji/168.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/168.gif -------------------------------------------------------------------------------- /static/emoji/169.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/169.gif -------------------------------------------------------------------------------- /static/emoji/170.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/170.gif -------------------------------------------------------------------------------- /static/emoji/171.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/171.gif -------------------------------------------------------------------------------- /static/emoji/172.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/172.gif -------------------------------------------------------------------------------- /static/emoji/173.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/173.gif -------------------------------------------------------------------------------- /static/emoji/174.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/174.gif -------------------------------------------------------------------------------- /static/emoji/175.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/175.gif -------------------------------------------------------------------------------- /static/emoji/176.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/176.gif -------------------------------------------------------------------------------- /static/emoji/177.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/177.gif -------------------------------------------------------------------------------- /static/emoji/178.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/178.gif -------------------------------------------------------------------------------- /static/emoji/179.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/179.gif -------------------------------------------------------------------------------- /static/emoji/180.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/180.gif -------------------------------------------------------------------------------- /static/emoji/181.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/181.gif -------------------------------------------------------------------------------- /static/emoji/182.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/182.gif -------------------------------------------------------------------------------- /static/emoji/183.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/183.gif -------------------------------------------------------------------------------- /static/emoji/184.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/184.gif -------------------------------------------------------------------------------- /static/emoji/185.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/185.gif -------------------------------------------------------------------------------- /static/emoji/186.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/186.gif -------------------------------------------------------------------------------- /static/emoji/187.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/187.gif -------------------------------------------------------------------------------- /static/emoji/188.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/188.gif -------------------------------------------------------------------------------- /static/emoji/189.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/189.gif -------------------------------------------------------------------------------- /static/emoji/190.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/190.gif -------------------------------------------------------------------------------- /static/emoji/191.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/191.gif -------------------------------------------------------------------------------- /static/emoji/192.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/192.gif -------------------------------------------------------------------------------- /static/emoji/193.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/193.gif -------------------------------------------------------------------------------- /static/emoji/194.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/194.gif -------------------------------------------------------------------------------- /static/emoji/195.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/195.gif -------------------------------------------------------------------------------- /static/emoji/196.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/196.gif -------------------------------------------------------------------------------- /static/emoji/197.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/197.gif -------------------------------------------------------------------------------- /static/emoji/198.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/198.gif -------------------------------------------------------------------------------- /static/emoji/199.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/199.gif -------------------------------------------------------------------------------- /static/images/悟空.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/悟空.jpg -------------------------------------------------------------------------------- /static/emoji/meinv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/meinv.png -------------------------------------------------------------------------------- /static/images/Guai.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/Guai.jpg -------------------------------------------------------------------------------- /static/images/vue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/vue.jpg -------------------------------------------------------------------------------- /static/images/加菲猫.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/加菲猫.jpg -------------------------------------------------------------------------------- /static/images/大飞哥.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/大飞哥.jpg -------------------------------------------------------------------------------- /static/images/小姨妈.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/小姨妈.jpg -------------------------------------------------------------------------------- /static/images/新之助.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/新之助.jpg -------------------------------------------------------------------------------- /static/images/萌萌俊.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/萌萌俊.jpg -------------------------------------------------------------------------------- /attachment/vue-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/attachment/vue-chat.png -------------------------------------------------------------------------------- /src/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/src/assets/img/logo.png -------------------------------------------------------------------------------- /src/assets/img/qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/src/assets/img/qrcode.png -------------------------------------------------------------------------------- /src/page/group/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/src/page/group/delete.png -------------------------------------------------------------------------------- /static/emoji/shangxin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/shangxin.png -------------------------------------------------------------------------------- /static/emoji/weixiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/emoji/weixiao.png -------------------------------------------------------------------------------- /static/images/father.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/father.jpg -------------------------------------------------------------------------------- /static/images/microzz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/microzz.jpg -------------------------------------------------------------------------------- /static/images/mother.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/mother.jpg -------------------------------------------------------------------------------- /static/images/orange.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/orange.jpg -------------------------------------------------------------------------------- /attachment/vue-chat-pic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/attachment/vue-chat-pic.png -------------------------------------------------------------------------------- /src/components/info/man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/src/components/info/man.png -------------------------------------------------------------------------------- /static/images/newfriend.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/newfriend.jpg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | -------------------------------------------------------------------------------- /attachment/vue-chat-unread.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/attachment/vue-chat-unread.png -------------------------------------------------------------------------------- /attachment/vue-chat-video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/attachment/vue-chat-video.png -------------------------------------------------------------------------------- /src/assets/fonts/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/src/assets/fonts/iconfont.eot -------------------------------------------------------------------------------- /src/assets/fonts/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/src/assets/fonts/iconfont.ttf -------------------------------------------------------------------------------- /src/assets/fonts/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/src/assets/fonts/iconfont.woff -------------------------------------------------------------------------------- /src/components/info/woman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/src/components/info/woman.png -------------------------------------------------------------------------------- /static/images/UserAvatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/static/images/UserAvatar.jpg -------------------------------------------------------------------------------- /src/assets/fonts/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/src/assets/fonts/iconfont.woff2 -------------------------------------------------------------------------------- /src/components/search/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/src/components/search/delete.png -------------------------------------------------------------------------------- /attachment/vue-chat-rtc-audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/attachment/vue-chat-rtc-audio.png -------------------------------------------------------------------------------- /attachment/vue-chat-rtc-video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/attachment/vue-chat-rtc-video.png -------------------------------------------------------------------------------- /attachment/qq_qrcode_universe_push.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/attachment/qq_qrcode_universe_push.jpg -------------------------------------------------------------------------------- /attachment/wechat-full-screen-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comsince/vue-chat/HEAD/attachment/wechat-full-screen-mode.png -------------------------------------------------------------------------------- /src/websocket/model/groupType.js: -------------------------------------------------------------------------------- 1 | export default class GroupType { 2 | static Normal = 0; 3 | static Free = 1; 4 | static Restricted = 2; 5 | } -------------------------------------------------------------------------------- /src/websocket/listener/onReceiverMessageListener.js: -------------------------------------------------------------------------------- 1 | export default class OnReceiverMessageListener { 2 | onReceiveMessage(protoMessage){ 3 | 4 | } 5 | } -------------------------------------------------------------------------------- /src/websocket/model/groupMemberType.js: -------------------------------------------------------------------------------- 1 | export default class GroupMemberType { 2 | static Normal = 0; 3 | static Manager = 1; 4 | static Owner = 2; 5 | } -------------------------------------------------------------------------------- /src/websocket/model/stateSelectChatMessage.js: -------------------------------------------------------------------------------- 1 | export default class StateSelectChateMessage{ 2 | name = ''; 3 | target; 4 | protoMessages = []; 5 | } -------------------------------------------------------------------------------- /src/webrtc/engineCallback.js: -------------------------------------------------------------------------------- 1 | export default class EngineCallback{ 2 | onReceiveCall(callSession){} 3 | 4 | shouldStartRing(startRing){} 5 | 6 | shouldSopRing(){} 7 | } -------------------------------------------------------------------------------- /src/websocket/model/stateConversationInfo.js: -------------------------------------------------------------------------------- 1 | export default class StateConversationInfo{ 2 | name; 3 | img; 4 | //ProtoConversationInfo 5 | conversationInfo = {}; 6 | } -------------------------------------------------------------------------------- /src/websocket/handler/messageHandler.js: -------------------------------------------------------------------------------- 1 | export default class MessageHandler{ 2 | match(signal){ 3 | return false; 4 | } 5 | 6 | processMessage(data){ 7 | 8 | } 9 | } -------------------------------------------------------------------------------- /src/websocket/model/conversationType.js: -------------------------------------------------------------------------------- 1 | export default class ConversationType { 2 | static Single = 0; 3 | static Group = 1; 4 | static ChatRoom = 2; 5 | static Channel = 3; 6 | } -------------------------------------------------------------------------------- /src/websocket/model/unReadCount.js: -------------------------------------------------------------------------------- 1 | export default class UnreadCount { 2 | // 单聊未读数 3 | unread = 0; 4 | // 群聊@数 5 | unreadMention = 0; 6 | // 群聊@All数 7 | unreadMentionAll = 0; 8 | } -------------------------------------------------------------------------------- /src/websocket/utils/logger.js: -------------------------------------------------------------------------------- 1 | export default class Logger { 2 | static log(text){ 3 | var time = new Date(); 4 | console.log("[" + time.toLocaleTimeString() + "] " + text); 5 | } 6 | } -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /src/websocket/message/persistFlag.js: -------------------------------------------------------------------------------- 1 | export default class PersistFlag { 2 | static No_Persist = 0; 3 | static Persist = 1; 4 | static Persist_And_Count = 3; 5 | static Transparent = 4; 6 | } -------------------------------------------------------------------------------- /src/websocket/message/modifyGroupInfoType.js: -------------------------------------------------------------------------------- 1 | export default class ModifyGroupInfoType { 2 | static Modify_Group_Name = 0; 3 | static Modify_Group_Portrait = 1; 4 | static Modify_Group_Extra = 2; 5 | } -------------------------------------------------------------------------------- /src/websocket/future/futureResult.js: -------------------------------------------------------------------------------- 1 | export default class FutureResult { 2 | code; 3 | result; 4 | 5 | constructor(code, result){ 6 | this.code = code 7 | this.result = result 8 | } 9 | } -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | // to edit target browsers: use "browserlist" field in package.json 6 | "autoprefixer": {} 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/webrtc/callState.js: -------------------------------------------------------------------------------- 1 | export default class CallState { 2 | static STATUS_IDLE = 0; 3 | static STATUS_OUTGOING = 1; 4 | static STATUS_INCOMING = 2; 5 | static STATUS_CONNECTING = 3; 6 | static STATUS_CONNECTED = 4; 7 | } -------------------------------------------------------------------------------- /src/websocket/message/notification/groupNotification.js: -------------------------------------------------------------------------------- 1 | import NotificationMessageContent from "./notificationMessageContent"; 2 | 3 | export default class GroupNotificationContent extends NotificationMessageContent { 4 | groupId = ''; 5 | } -------------------------------------------------------------------------------- /src/websocket/message/sendMessage.js: -------------------------------------------------------------------------------- 1 | export default class SendMessage{ 2 | target; 3 | messageContent; 4 | 5 | constructor(target,messageContent){ 6 | this.target = target; 7 | this.messageContent = messageContent; 8 | } 9 | } -------------------------------------------------------------------------------- /src/websocket/message/unsupportMessageContent.js: -------------------------------------------------------------------------------- 1 | import MessageContent from "./messageContent"; 2 | 3 | export default class UnsupportMessageContent extends MessageContent { 4 | 5 | digest() { 6 | return '尚不支持该类型消息, 请手机查看 : ' + this.type; 7 | } 8 | } -------------------------------------------------------------------------------- /src/websocket/model/conversationInfo.js: -------------------------------------------------------------------------------- 1 | export default class ConversationInfo{ 2 | conversation = {}; 3 | lastMessage = {}; 4 | timestamp = 0; 5 | draft = ''; 6 | unreadCount = {}; 7 | isTop = false; 8 | isSilent = false; 9 | 10 | } -------------------------------------------------------------------------------- /src/websocket/future/promiseResolve.js: -------------------------------------------------------------------------------- 1 | export default class PromiseResolve { 2 | resolve; 3 | timeoutId; 4 | protoMessageId; 5 | 6 | constructor(resolve,timeoutId){ 7 | this.resolve = resolve; 8 | this.timeoutId = timeoutId; 9 | } 10 | } -------------------------------------------------------------------------------- /src/websocket/message/messageContentMediaType.js: -------------------------------------------------------------------------------- 1 | export default class MessageContentMediaType { 2 | static General = 0; 3 | static Image = 1; 4 | static Voice = 2; 5 | static Video = 3; 6 | static File = 4; 7 | static Portrait = 5; 8 | static Fvaorite = 6; 9 | } -------------------------------------------------------------------------------- /src/websocket/utils/StringUtil.js: -------------------------------------------------------------------------------- 1 | export default class StringUtils { 2 | static b64_to_utf8(str) { 3 | return decodeURIComponent(escape(atob(str))); 4 | } 5 | 6 | 7 | static utf8_to_b64(str) { 8 | return btoa(unescape(encodeURIComponent(str))); 9 | } 10 | } -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { "modules": false }], 4 | "stage-2" 5 | ], 6 | "plugins": ["transform-runtime"], 7 | "comments": false, 8 | "env": { 9 | "test": { 10 | "presets": ["env", "stage-2"], 11 | "plugins": [ "istanbul" ] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |{{scope.row.displayName}}
50 |{{scope.row.mobile}}
51 |{{item.name ? item.name : ""}}
12 | {{item.conversationInfo.timestamp | getTimeStringAutoShort2}} 13 |{{processageGroupMessage(item)}}
16 | 17 | {{item.conversationInfo.unreadCount ? item.conversationInfo.unreadCount.unread : 0}} 18 | 19 |