blue
2 years ago
committed by
Gitee
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
4 changed files with
19 additions and
19 deletions
-
README.md
-
im-ui/src/view/Login.vue
-
im-uniapp/components/chat-message-item/chat-message-item.vue
-
im-uniapp/pages/chat/chat-box.vue
|
|
|
@ -5,9 +5,9 @@ |
|
|
|
[](https://github.com/bluexsx/box-im) |
|
|
|
<a href="#加入交流群"><img src="https://img.shields.io/badge/QQ交流群-green.svg?style=plasticr"></a> |
|
|
|
|
|
|
|
1. 盒子IM是一个仿微信实现的网页版聊天软件,目前完全开源。 |
|
|
|
1. 盒子IM是一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件。 |
|
|
|
1. 支持私聊、群聊、离线消息、发送语音、图片、文件、emoji表情等功能 |
|
|
|
1. 支持视频聊天(基于webrtc实现,需要ssl证书) |
|
|
|
1. 支持音视频通话(基于webrtc实现,需要ssl证书) |
|
|
|
1. 后端采用springboot+netty实现,网页端使用vue,移动端使用uniapp |
|
|
|
1. 服务器支持集群化部署,每个im-server仅处理自身连接用户的消息 |
|
|
|
|
|
|
|
|
|
|
|
@ -9,23 +9,12 @@ |
|
|
|
<li>目前移动端仅兼容h5和微信小程序,后续会继续兼容更多终端类型</li> |
|
|
|
<li>聊天窗口支持粘贴截图、@群成员、已读未读显示</li> |
|
|
|
<li>页面风格升级:表情包更新、自动生成文字头像等</li> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<h3>最近更新(2024-01-19):</h3> |
|
|
|
<ul> |
|
|
|
<li>最近给小伙伴们整理了一份 |
|
|
|
<li>支持群聊已读显示(回执消息)</li> |
|
|
|
<li>语雀文档 |
|
|
|
<a href="https://www.yuque.com/u1475064/mufu2a" target="_blank">盒子IM详细介绍文档</a>,目前限时免费开放中 |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<h3>最近更新(2024-01-28):</h3> |
|
|
|
<ul> |
|
|
|
<li>支持群聊已读显示(回执消息)</li> |
|
|
|
<li>群聊会话窗口增加邀请、退群、移除、解散提示</li> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<h3>最近更新(2024-02-24):</h3> |
|
|
|
<ul> |
|
|
|
@ -36,7 +25,17 @@ |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<h3>项目依旧完全开源,可内网部署。如果项目对您有帮助,请帮忙点个star:</h3> |
|
|
|
<h3>最近更新(2024-03-17):</h3> |
|
|
|
<ul> |
|
|
|
<li>web端音视频功能优化:支持语音呼叫、会话中加入通话状态消息</li> |
|
|
|
<li>uniapp端支持音视频通话,并与web端打通</li> |
|
|
|
<li>uniapp端音视频源码通话源码暂未开源,需付费获取: |
|
|
|
<a href="https://www.yuque.com/u1475064/oncgyg/vi7engzluty594s2" target="_blank">uniapp端音视频通话源码购买说明</a> |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<h3>如果本项目对您有帮助,请在gitee上帮忙点个star</h3> |
|
|
|
</div> |
|
|
|
<div class="login-icons"> |
|
|
|
<a class="login-icon"> |
|
|
|
|
|
|
|
@ -40,7 +40,8 @@ |
|
|
|
<text title="发送失败" v-if="loadFail" @click="onSendFail" |
|
|
|
class="send-fail iconfont icon-warning-circle-fill"></text> |
|
|
|
</view> |
|
|
|
<view class="chat-realtime chat-msg-text" v-if="isRTMessage"> |
|
|
|
<view class="chat-realtime chat-msg-text" v-if="isRTMessage" |
|
|
|
@click="$emit('call')"> |
|
|
|
<text v-if="msgInfo.type==$enums.MESSAGE_TYPE.RT_VOICE" |
|
|
|
class="iconfont icon-chat-voice"></text> |
|
|
|
<text v-if="msgInfo.type==$enums.MESSAGE_TYPE.RT_VIDEO" |
|
|
|
|
|
|
|
@ -10,7 +10,7 @@ |
|
|
|
:scroll-into-view="'chat-item-'+scrollMsgIdx"> |
|
|
|
<view v-for="(msgInfo,idx) in chat.messages" :key="idx"> |
|
|
|
<chat-message-item v-if="idx>=showMinIdx" :headImage="headImage(msgInfo)" |
|
|
|
@click="onClickMessage(msgInfo)" |
|
|
|
@call="onRtCall(msgInfo)" |
|
|
|
:showName="showName(msgInfo)" @recall="onRecallMessage" @delete="onDeleteMessage" |
|
|
|
@longPressHead="onLongPressHead(msgInfo)" @download="onDownloadFile" :id="'chat-item-'+idx" |
|
|
|
:msgInfo="msgInfo" :groupMembers="groupMembers"> |
|
|
|
@ -126,7 +126,7 @@ |
|
|
|
icon: "none" |
|
|
|
}) |
|
|
|
}, |
|
|
|
onClickMessage(msgInfo){ |
|
|
|
onRtCall(msgInfo){ |
|
|
|
if(msgInfo.type == this.$enums.MESSAGE_TYPE.RT_VOICE){ |
|
|
|
this.onVoiceCall(); |
|
|
|
}else if(msgInfo.type == this.$enums.MESSAGE_TYPE.RT_VIDEO){ |
|
|
|
|