parent
175ffa873c
commit
e1e6550e31
|
|
@ -171,20 +171,23 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
||||||
/// --------------------------signalR Socket相关
|
/// --------------------------signalR Socket相关
|
||||||
/// Socket长连接
|
/// Socket长连接
|
||||||
Future<void> signalRSocket() async {
|
Future<void> signalRSocket() async {
|
||||||
state.hubConnection.value = HubConnectionBuilder().withUrl('${RequestConfig().baseUrl}/session-manage',
|
state.hubConnection.value = HubConnectionBuilder()
|
||||||
HttpConnectionOptions(
|
.withUrl('${RequestConfig().baseUrl}/session-manage', HttpConnectionOptions(
|
||||||
transport: HttpTransportType.longPolling,
|
transport: HttpTransportType.webSockets,
|
||||||
accessTokenFactory: () async => await Future.value(UserStore.to.token),
|
accessTokenFactory: () async => await Future.value(UserStore.to.token),
|
||||||
logging: (level, message) => debugPrint("wgs输出===:SignalR Socket-$message"),
|
logging: (level, message) => debugPrint("wgs输出===:SignalR Socket-$message"),
|
||||||
)).build();
|
))
|
||||||
|
// 配置断线重连策略:默认重连4次,分别间隔10秒 4秒 10秒 10秒
|
||||||
|
.withAutomaticReconnect([10000, 4000, 10000, 10000]).build();
|
||||||
|
|
||||||
await state.hubConnection.value?.start();
|
await state.hubConnection.value?.start();
|
||||||
|
|
||||||
joinMeetingToSocket();
|
joinMeetingToSocket();
|
||||||
|
|
||||||
/// 远端用户或主播加入会议室回调
|
/// 远端用户或主播加入会议室回调
|
||||||
state.hubConnection.value?.on("UserJoined", (user){
|
state.hubConnection.value?.on("UserJoined", (e){
|
||||||
var jsonStr = const Utf8Decoder().convert(json.encode(user).runes.toList());
|
// var jsonStr = const Utf8Decoder().convert(json.encode(user).runes.toList());
|
||||||
|
var jsonStr = json.encode(e);
|
||||||
var listDynamic = jsonDecode(jsonStr);
|
var listDynamic = jsonDecode(jsonStr);
|
||||||
List<MeetingRoomUser> meetingRoomUsers = (listDynamic as List<dynamic>).map((e) => MeetingRoomUser.fromJson((e as Map<String,dynamic>))).toList();
|
List<MeetingRoomUser> meetingRoomUsers = (listDynamic as List<dynamic>).map((e) => MeetingRoomUser.fromJson((e as Map<String,dynamic>))).toList();
|
||||||
state.cacheUsers.value.addAll(meetingRoomUsers);
|
state.cacheUsers.value.addAll(meetingRoomUsers);
|
||||||
|
|
@ -193,8 +196,9 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
||||||
});
|
});
|
||||||
|
|
||||||
/// 远端用户或主播离开会议室回调
|
/// 远端用户或主播离开会议室回调
|
||||||
state.hubConnection.value?.on("UserLeave", (uid){
|
state.hubConnection.value?.on("UserLeave", (e){
|
||||||
var jsonStr = const Utf8Decoder().convert(json.encode(uid).runes.toList());
|
// var jsonStr = const Utf8Decoder().convert(json.encode(uid).runes.toList());
|
||||||
|
var jsonStr = json.encode(e);
|
||||||
List listDynamic = jsonDecode(jsonStr);
|
List listDynamic = jsonDecode(jsonStr);
|
||||||
for(String uidStr in listDynamic){
|
for(String uidStr in listDynamic){
|
||||||
for(var j = 0; j < state.cacheUsers.value.length; j++){
|
for(var j = 0; j < state.cacheUsers.value.length; j++){
|
||||||
|
|
@ -209,7 +213,8 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
||||||
|
|
||||||
/// 申请/结束发言-管理员同意或拒绝回调
|
/// 申请/结束发言-管理员同意或拒绝回调
|
||||||
state.hubConnection.value?.on("ManagerRefresh", (e){
|
state.hubConnection.value?.on("ManagerRefresh", (e){
|
||||||
var jsonStr = const Utf8Decoder().convert(json.encode(e?[0]).runes.toList());
|
// var jsonStr = const Utf8Decoder().convert(json.encode(e?[0]).runes.toList());
|
||||||
|
var jsonStr = json.encode(e?[0]);
|
||||||
var listDynamic = jsonDecode(jsonStr);
|
var listDynamic = jsonDecode(jsonStr);
|
||||||
MeetingRoomUser meetingRoomUser = MeetingRoomUser.fromJson(listDynamic);
|
MeetingRoomUser meetingRoomUser = MeetingRoomUser.fromJson(listDynamic);
|
||||||
if(meetingRoomUser.isRoomManager == true){
|
if(meetingRoomUser.isRoomManager == true){
|
||||||
|
|
@ -246,7 +251,8 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
||||||
|
|
||||||
/// 会议室接收消息回调
|
/// 会议室接收消息回调
|
||||||
state.hubConnection.value?.on("ReceiveMessage", (e){
|
state.hubConnection.value?.on("ReceiveMessage", (e){
|
||||||
var jsonStr = const Utf8Decoder().convert(json.encode(e).runes.toList());
|
// var jsonStr = const Utf8Decoder().convert(json.encode(e).runes.toList());
|
||||||
|
var jsonStr = json.encode(e);
|
||||||
List list = json.decode(jsonStr);
|
List list = json.decode(jsonStr);
|
||||||
MeetingRoomMsg meetingRoomMsg = MeetingRoomMsg(list[0],list[1],list[2],0);
|
MeetingRoomMsg meetingRoomMsg = MeetingRoomMsg(list[0],list[1],list[2],0);
|
||||||
state.meetingRoomMsgs.value.add(meetingRoomMsg);
|
state.meetingRoomMsgs.value.add(meetingRoomMsg);
|
||||||
|
|
@ -259,8 +265,8 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
||||||
|
|
||||||
/// 被移除会议回调
|
/// 被移除会议回调
|
||||||
state.hubConnection.value?.on("ForceExitRoom", (e){
|
state.hubConnection.value?.on("ForceExitRoom", (e){
|
||||||
var jsonStr = const Utf8Decoder().convert(json.encode(e).runes.toList());
|
// var jsonStr = const Utf8Decoder().convert(json.encode(e).runes.toList());
|
||||||
var listDynamic = jsonDecode(jsonStr);
|
var jsonStr = json.encode(e);
|
||||||
debugPrint("wgs输出===:Socket-被移除会议:$jsonStr");
|
debugPrint("wgs输出===:Socket-被移除会议:$jsonStr");
|
||||||
Get.back();
|
Get.back();
|
||||||
ToastUtils.showSuccess("你已被移除会议");
|
ToastUtils.showSuccess("你已被移除会议");
|
||||||
|
|
@ -289,7 +295,8 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
||||||
|
|
||||||
/// 单独用户开闭麦回调
|
/// 单独用户开闭麦回调
|
||||||
state.hubConnection.value?.on("OperMicr", (e){
|
state.hubConnection.value?.on("OperMicr", (e){
|
||||||
var jsonStr = const Utf8Decoder().convert(json.encode(e?[0]).runes.toList());
|
// var jsonStr = const Utf8Decoder().convert(json.encode(e?[0]).runes.toList());
|
||||||
|
var jsonStr = json.encode(e?[0]);
|
||||||
var listDynamic = jsonDecode(jsonStr);
|
var listDynamic = jsonDecode(jsonStr);
|
||||||
MeetingRoomUser meetingRoomUser = MeetingRoomUser.fromJson(listDynamic);
|
MeetingRoomUser meetingRoomUser = MeetingRoomUser.fromJson(listDynamic);
|
||||||
if(meetingRoomUser.enableMicr == true){
|
if(meetingRoomUser.enableMicr == true){
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue