Browse Source

feat:移动端音视频通话上线

master
xsx 2 years ago
parent
commit
10a19e1aed
  1. 4
      README.md
  2. 27
      im-ui/src/view/Login.vue
  3. 3
      im-uniapp/components/chat-message-item/chat-message-item.vue
  4. 4
      im-uniapp/pages/chat/chat-box.vue

4
README.md

@ -5,9 +5,9 @@
[![star](https://img.shields.io/github/stars/bluexsx/box-im.svg?style=flat&logo=GitHub)](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仅处理自身连接用户的消息

27
im-ui/src/view/Login.vue

@ -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">

3
im-uniapp/components/chat-message-item/chat-message-item.vue

@ -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"

4
im-uniapp/pages/chat/chat-box.vue

@ -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){

Loading…
Cancel
Save