|
@@ -7,7 +7,7 @@ import { formatTimestamp } from '~/utils/time'
|
|
|
import { CHAT_STATUS, CHAT_OPERATION } from '~/types';
|
|
|
|
|
|
const router = useRouter()
|
|
|
-let teacher
|
|
|
+let teacher: { user_id: string; dxp_user_realname: string; dxp_user_phone: string; dxp_wx_qrcode: string; dxp_jj: string; dxp_user_avatar: string; }
|
|
|
const SessionConsultTeacher = sessionStorage.getItem('consult_teacher')
|
|
|
if (SessionConsultTeacher !== null) {
|
|
|
teacher = JSON.parse(SessionConsultTeacher)
|
|
@@ -29,7 +29,7 @@ let teacherInfo = $ref<{
|
|
|
request({
|
|
|
url: '/dyaw/xlfw_pbgl/detail',
|
|
|
data: {
|
|
|
- user_id: teacher.user_id
|
|
|
+ user_id: teacher!.user_id
|
|
|
}
|
|
|
}).then(res => {
|
|
|
if (res.code === '1') {
|
|
@@ -42,7 +42,7 @@ const dyaw_xlfw_zxhd: type_dyaw_xlfw_zxhd = (await request({
|
|
|
data: {
|
|
|
dyaw_xlfw_zxhd: {
|
|
|
dxz_stu_user_id: user.user_id,
|
|
|
- dxz_tea_user_id: teacher.user_id
|
|
|
+ dxz_tea_user_id: teacher!.user_id
|
|
|
}
|
|
|
}
|
|
|
})).data.one_info
|
|
@@ -117,6 +117,18 @@ async function handleClickSend(val?: string) {
|
|
|
...reqDate,
|
|
|
dxzl_id: `${res.data.insert_id}`
|
|
|
}
|
|
|
+ if (!ws||ws.readyState !== 1) {
|
|
|
+ ws = createSocket(
|
|
|
+ { teacher: teacher!.user_id, student: user.user_id },
|
|
|
+ {
|
|
|
+ message(socketRes: TSocketRes<type_dyaw_xlfw_zxhd_log>) {
|
|
|
+ if (socketRes.from_client_name.endsWith('teacher')) {
|
|
|
+ infoList.push(socketRes.content)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
infoList.push(fullSendData)
|
|
|
socketSend(ws, fullSendData)
|
|
|
isSending = false
|
|
@@ -135,8 +147,8 @@ request({
|
|
|
infoList = res.data.page_data.reverse()
|
|
|
}
|
|
|
})
|
|
|
-const ws = createSocket(
|
|
|
- { teacher: teacher.user_id, student: user.user_id },
|
|
|
+let ws = createSocket(
|
|
|
+ { teacher: teacher!.user_id, student: user.user_id },
|
|
|
{
|
|
|
message(socketRes: TSocketRes<type_dyaw_xlfw_zxhd_log>) {
|
|
|
if (socketRes.from_client_name.endsWith('teacher')) {
|
|
@@ -178,31 +190,70 @@ watch(
|
|
|
// ==========
|
|
|
|
|
|
let RtcDialogRef = $ref<typeof import("~/components/rtc-dialog/index.vue")['default']>()
|
|
|
-
|
|
|
-const ws2 = createSocket(
|
|
|
- { teacher: teacher.user_id, student: '*' },
|
|
|
- {
|
|
|
- message(socketRes: TSocketRes<type_dyaw_xlfw_zxhd_log & { operate: CHAT_OPERATION }>) {
|
|
|
- console.info('enter message', socketRes);
|
|
|
- if (socketRes.from_client_name.endsWith('teacher')) {
|
|
|
- if (socketRes.content.dxzl_stu_user_id === user.user_id) {
|
|
|
- console.info('start publisher ')
|
|
|
- RtcDialogRef!.publisher(socketRes.content)
|
|
|
+let ws2: WebSocket
|
|
|
+onMounted(() => {
|
|
|
+ ws2 = createSocket(
|
|
|
+ { teacher: teacher.user_id, student: '*' },
|
|
|
+ {
|
|
|
+ message(socketRes: TSocketRes<type_dyaw_xlfw_zxhd_log & { operate: CHAT_OPERATION }>) {
|
|
|
+ console.info('enter message', socketRes);
|
|
|
+ if (socketRes.from_client_name.endsWith('teacher')) {
|
|
|
+ if (socketRes.content.dxzl_stu_user_id === user.user_id) {
|
|
|
+ console.info('start publisher ')
|
|
|
+ RtcDialogRef!.publisher(socketRes.content)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-)
|
|
|
-onMounted(() => {
|
|
|
+ )
|
|
|
RtcDialogRef!.init(ws2)
|
|
|
})
|
|
|
|
|
|
+onBeforeUnmount(() => {
|
|
|
+ ws?.close()
|
|
|
+ ws2?.close()
|
|
|
+})
|
|
|
+
|
|
|
|
|
|
async function handleAudioChatStart() {
|
|
|
+ console.log('handleAudioChatStart ws2 : ', ws2)
|
|
|
+ if (!ws2||ws2.readyState !== 1) {
|
|
|
+ ws2 = createSocket(
|
|
|
+ { teacher: teacher.user_id, student: '*' },
|
|
|
+ {
|
|
|
+ message(socketRes: TSocketRes<type_dyaw_xlfw_zxhd_log & { operate: CHAT_OPERATION }>) {
|
|
|
+ console.info('enter message', socketRes);
|
|
|
+ if (socketRes.from_client_name.endsWith('teacher')) {
|
|
|
+ if (socketRes.content.dxzl_stu_user_id === user.user_id) {
|
|
|
+ console.info('start publisher ')
|
|
|
+ RtcDialogRef!.publisher(socketRes.content)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
RtcDialogRef!.open(dyaw_xlfw_zxhd, 'audio')
|
|
|
}
|
|
|
|
|
|
async function handleVideoChatStart() {
|
|
|
+ console.log('handleVideoChatStart ws2 : ', ws2)
|
|
|
+ if (!ws2||ws2.readyState !== 1) {
|
|
|
+ ws2 = createSocket(
|
|
|
+ { teacher: teacher.user_id, student: '*' },
|
|
|
+ {
|
|
|
+ message(socketRes: TSocketRes<type_dyaw_xlfw_zxhd_log & { operate: CHAT_OPERATION }>) {
|
|
|
+ console.info('enter message', socketRes);
|
|
|
+ if (socketRes.from_client_name.endsWith('teacher')) {
|
|
|
+ if (socketRes.content.dxzl_stu_user_id === user.user_id) {
|
|
|
+ console.info('start publisher ')
|
|
|
+ RtcDialogRef!.publisher(socketRes.content)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
RtcDialogRef!.open(dyaw_xlfw_zxhd, 'video')
|
|
|
}
|
|
|
|