优化了老师端的等待状态判断逻辑
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:app/request/dto/room/room_info_dto.dart';
|
||||
import 'package:app/request/dto/room/room_type_dto.dart';
|
||||
import 'package:app/request/dto/room/room_user_dto.dart';
|
||||
import 'package:app/request/dto/room/rtc_token_dto.dart';
|
||||
import 'package:app/request/websocket/room_protocol.dart';
|
||||
@@ -11,7 +12,10 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'type.dart';
|
||||
|
||||
class TchRoomVM extends ChangeNotifier {
|
||||
TchRoomVM({required this.roomInfo, String? start}) {
|
||||
TchRoomVM({
|
||||
required this.roomInfo,
|
||||
String? start,
|
||||
}) {
|
||||
_startRoom();
|
||||
}
|
||||
|
||||
@@ -20,6 +24,7 @@ class TchRoomVM extends ChangeNotifier {
|
||||
|
||||
///房间的基础信息
|
||||
final RoomInfoDto roomInfo;
|
||||
int roomStatus = -1; // //-1加载中,0没开始,1进行中,2关闭
|
||||
|
||||
///老师选中的学生id
|
||||
int activeSId = 0;
|
||||
@@ -37,7 +42,8 @@ class TchRoomVM extends ChangeNotifier {
|
||||
|
||||
///websocket管理
|
||||
final RoomWebSocket _ws = RoomWebSocket();
|
||||
bool wsConnected = false; // socket连接状态
|
||||
|
||||
// bool wsConnected = false; // socket连接状态
|
||||
StreamSubscription<RoomMessage>? _sub;
|
||||
|
||||
RtcTokenDto? get rtcToken => _ws.rtcToken;
|
||||
@@ -50,12 +56,13 @@ class TchRoomVM extends ChangeNotifier {
|
||||
}
|
||||
//启动连接
|
||||
await _ws.connect();
|
||||
wsConnected = true;
|
||||
//监听各种ws事件
|
||||
_sub = _ws.stream.listen((msg) {
|
||||
// 自习室人员变化
|
||||
if (msg.event == RoomEvent.changeUser) {
|
||||
final list = RoomUserDto.listFromJson(msg.data['user_list']);
|
||||
final room = RoomTypeDto.fromJson(msg.data['room_info']);
|
||||
roomStatus = room.roomStatus;
|
||||
onStudentChange(list);
|
||||
} else if ([
|
||||
RoomEvent.openSpeaker,
|
||||
|
||||
Reference in New Issue
Block a user