Преглед изворни кода

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

xsx пре 2 година
родитељ
комит
10a19e1aed

+ 2 - 2
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) 
 [![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>
 <a href="#加入交流群"><img src="https://img.shields.io/badge/QQ交流群-green.svg?style=plasticr"></a>
 
 
-1. 盒子IM是一个仿微信实现的网页版聊天软件,目前完全开源
+1. 盒子IM是一个仿微信实现的网页版聊天软件,不依赖任何第三方收费组件
 1. 支持私聊、群聊、离线消息、发送语音、图片、文件、emoji表情等功能
 1. 支持私聊、群聊、离线消息、发送语音、图片、文件、emoji表情等功能
-1. 支持视频聊天(基于webrtc实现,需要ssl证书)
+1. 支持音视频通话(基于webrtc实现,需要ssl证书)
 1. 后端采用springboot+netty实现,网页端使用vue,移动端使用uniapp
 1. 后端采用springboot+netty实现,网页端使用vue,移动端使用uniapp
 1. 服务器支持集群化部署,每个im-server仅处理自身连接用户的消息
 1. 服务器支持集群化部署,每个im-server仅处理自身连接用户的消息
 
 

+ 13 - 14
im-ui/src/view/Login.vue

@@ -9,23 +9,12 @@
 						<li>目前移动端仅兼容h5和微信小程序,后续会继续兼容更多终端类型</li>
 						<li>目前移动端仅兼容h5和微信小程序,后续会继续兼容更多终端类型</li>
 						<li>聊天窗口支持粘贴截图、@群成员、已读未读显示</li>
 						<li>聊天窗口支持粘贴截图、@群成员、已读未读显示</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>,目前限时免费开放中
 							<a href="https://www.yuque.com/u1475064/mufu2a" target="_blank">盒子IM详细介绍文档</a>,目前限时免费开放中
 						</li>
 						</li>
 					</ul>
 					</ul>
 				</div>
 				</div>
-				<div>
-					<h3>最近更新(2024-01-28):</h3>
-					<ul>
-						<li>支持群聊已读显示(回执消息)</li>
-						<li>群聊会话窗口增加邀请、退群、移除、解散提示</li>
-					</ul>
-				</div>
 				<div>
 				<div>
 					<h3>最近更新(2024-02-24):</h3>
 					<h3>最近更新(2024-02-24):</h3>
 					<ul>
 					<ul>
@@ -36,7 +25,17 @@
 					</ul>
 					</ul>
 				</div>
 				</div>
 				<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>
 				<div class="login-icons">
 				<div class="login-icons">
 					<a class="login-icon">
 					<a class="login-icon">

+ 2 - 1
im-uniapp/components/chat-message-item/chat-message-item.vue

@@ -40,7 +40,8 @@
 						<text title="发送失败" v-if="loadFail" @click="onSendFail"
 						<text title="发送失败" v-if="loadFail" @click="onSendFail"
 							class="send-fail iconfont icon-warning-circle-fill"></text>
 							class="send-fail iconfont icon-warning-circle-fill"></text>
 					</view>
 					</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"
 						<text v-if="msgInfo.type==$enums.MESSAGE_TYPE.RT_VOICE"
 							class="iconfont icon-chat-voice"></text>
 							class="iconfont icon-chat-voice"></text>
 						<text v-if="msgInfo.type==$enums.MESSAGE_TYPE.RT_VIDEO"
 						<text v-if="msgInfo.type==$enums.MESSAGE_TYPE.RT_VIDEO"

+ 2 - 2
im-uniapp/pages/chat/chat-box.vue

@@ -10,7 +10,7 @@
 				:scroll-into-view="'chat-item-'+scrollMsgIdx">
 				:scroll-into-view="'chat-item-'+scrollMsgIdx">
 				<view v-for="(msgInfo,idx) in chat.messages" :key="idx">
 				<view v-for="(msgInfo,idx) in chat.messages" :key="idx">
 					<chat-message-item v-if="idx>=showMinIdx" :headImage="headImage(msgInfo)"
 					<chat-message-item v-if="idx>=showMinIdx" :headImage="headImage(msgInfo)"
-						@click="onClickMessage(msgInfo)"
+						@call="onRtCall(msgInfo)"
 						:showName="showName(msgInfo)" @recall="onRecallMessage" @delete="onDeleteMessage"
 						:showName="showName(msgInfo)" @recall="onRecallMessage" @delete="onDeleteMessage"
 						@longPressHead="onLongPressHead(msgInfo)" @download="onDownloadFile" :id="'chat-item-'+idx"
 						@longPressHead="onLongPressHead(msgInfo)" @download="onDownloadFile" :id="'chat-item-'+idx"
 						:msgInfo="msgInfo" :groupMembers="groupMembers">
 						:msgInfo="msgInfo" :groupMembers="groupMembers">
@@ -126,7 +126,7 @@
 					icon: "none"
 					icon: "none"
 				})
 				})
 			},
 			},
-			onClickMessage(msgInfo){
+			onRtCall(msgInfo){
 				if(msgInfo.type == this.$enums.MESSAGE_TYPE.RT_VOICE){
 				if(msgInfo.type == this.$enums.MESSAGE_TYPE.RT_VOICE){
 					this.onVoiceCall();
 					this.onVoiceCall();
 				}else if(msgInfo.type == this.$enums.MESSAGE_TYPE.RT_VIDEO){
 				}else if(msgInfo.type == this.$enums.MESSAGE_TYPE.RT_VIDEO){