You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			173 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			173 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Dart
		
	
// import 'dart:convert';
 | 
						|
// import 'dart:io';
 | 
						|
//
 | 
						|
// import 'package:flutter/cupertino.dart';
 | 
						|
// import 'package:flutter_webrtc/flutter_webrtc.dart';
 | 
						|
// import 'package:http/io_client.dart';
 | 
						|
// import 'package:signalr_core/signalr_core.dart';
 | 
						|
//
 | 
						|
// class SignalRUtil {
 | 
						|
//   String hubName;
 | 
						|
//
 | 
						|
//   String sourceUser;
 | 
						|
//   String destinationUser;
 | 
						|
//   setContributors({@required String caller, @required String receiver}){
 | 
						|
//     this.sourceUser = caller;
 | 
						|
//     this.destinationUser = receiver;
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   Function(bool) onConnected;
 | 
						|
//   SignalRUtil({@required this.hubName});
 | 
						|
//
 | 
						|
//
 | 
						|
//   HubConnection connectionHub;
 | 
						|
//
 | 
						|
//   closeConnection() async{
 | 
						|
//     if(connectionHub != null) {
 | 
						|
//       connectionHub.off('OnIncomingCallAsync');
 | 
						|
//       connectionHub.off('OnCallDeclinedAsync');
 | 
						|
//       connectionHub.off('OnCallAcceptedAsync');
 | 
						|
//       connectionHub.off('nHangUpAsync');
 | 
						|
//       connectionHub.off('OnIceCandidateAsync');
 | 
						|
//       connectionHub.off('OnOfferAsync');
 | 
						|
//       await connectionHub.stop();
 | 
						|
//     }
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   Future<bool> openConnection() async {
 | 
						|
//     connectionHub = HubConnectionBuilder()
 | 
						|
//         .withUrl(
 | 
						|
//         hubName,
 | 
						|
//         HttpConnectionOptions(
 | 
						|
//           logMessageContent: true,
 | 
						|
//           client: IOClient(HttpClient()..badCertificateCallback = (x, y, z) => true),
 | 
						|
//           logging: (level, message) => print(message),
 | 
						|
//         )).build();
 | 
						|
//
 | 
						|
//     await connectionHub.start();
 | 
						|
//     await Future.delayed(Duration(seconds: 1));
 | 
						|
//
 | 
						|
//     connectionHub.on('ReceiveMessage', (message) {
 | 
						|
//       handleIncomingMessage(message);
 | 
						|
//     });
 | 
						|
//
 | 
						|
//     return getConnectionState();
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   void handleIncomingMessage(List<dynamic> message) {
 | 
						|
//     print(message.toString());
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   void sendMessage(List<dynamic> args) async {
 | 
						|
//     await connectionHub.invoke('SendMessage', args: args); //['Bob', 'Says hi!']
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   listen({Function(CallUser) onAcceptCall, Function(CallUser) onHangupCall, Function(String, CallUser) onDeclineCall, Function(String, CallUser) onOffer, Function(String) onCandidate}){
 | 
						|
//
 | 
						|
//     connectionHub.on('OnIncomingCallAsync', (arguments) {
 | 
						|
//       print('OnIncomingCallAsync: ${arguments.toString()}');
 | 
						|
//     });
 | 
						|
//
 | 
						|
//     connectionHub.on('OnCallDeclinedAsync', (arguments) {
 | 
						|
//       print('OnCallDeclinedAsync: ${arguments.toString()}');
 | 
						|
//       onDeclineCall(arguments.first, CallUser.from(arguments.last));
 | 
						|
//     });
 | 
						|
//
 | 
						|
//     connectionHub.on('OnCallAcceptedAsync', (arguments) {
 | 
						|
//       print('OnCallAcceptedAsync: ${arguments.toString()}');
 | 
						|
//     });
 | 
						|
//
 | 
						|
//     connectionHub.on('OnHangUpAsync', (arguments) {
 | 
						|
//       print('nHangUpAsync: ${arguments.toString()}');
 | 
						|
//       onHangupCall(CallUser.from(arguments.first));
 | 
						|
//     });
 | 
						|
//
 | 
						|
//     connectionHub.on('OnIceCandidateAsync', (arguments) {
 | 
						|
//       print('OnIceCandidateAsync: ${arguments.toString()}');
 | 
						|
//       onCandidate(arguments.first);
 | 
						|
//     });
 | 
						|
//
 | 
						|
//     connectionHub.on('OnOfferAsync', (arguments) {
 | 
						|
//       print('OnOfferAsync: ${arguments.toString()}');
 | 
						|
//       onOffer(arguments.first, CallUser.from(arguments.last));
 | 
						|
//     });
 | 
						|
//
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   // CallUserAsync(string currentUserId, string targerUserId)
 | 
						|
//   Future<dynamic> callUser(String from, to) async{
 | 
						|
//     return await connectionHub.invoke('CallUserAsync', args: [from, to]);
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   // CallDeclinedAsync(string currentUserId, string targerUserId)
 | 
						|
//   Future<dynamic> declineCall(String from, to) async{
 | 
						|
//     return await connectionHub.invoke('CallDeclinedAsync', args: [from, to]);
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   // AnswerCallAsync(string currentUserId, string targetUserId)
 | 
						|
//   Future<dynamic> answerCall(String from, to) async{
 | 
						|
//     return await connectionHub.invoke('AnswerCallAsync', args: [from, to]);
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   // IceCandidateAsync(string targetUserId, string candidate)
 | 
						|
//   Future<dynamic> addIceCandidate(String candidate) async{
 | 
						|
//     final target = destinationUser;
 | 
						|
//     return await connectionHub.invoke('IceCandidateAsync', args: [target, candidate]);
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   // OfferAsync(string targetUserId,string currentUserId, string targetOffer)
 | 
						|
//   Future<dynamic> offer(String from, to, offer) async{
 | 
						|
//     return await connectionHub.invoke('OfferAsync', args: [from, to, offer]);
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   // AnswerOfferAsync(string targetUserId, string CallerOffer)
 | 
						|
//   Future<dynamic> answerOffer(RTCSessionDescription answerSdp, caller, receiver) async{
 | 
						|
//     final payload = {
 | 
						|
//       'target': receiver,
 | 
						|
//       'caller': caller,
 | 
						|
//       'sdp': answerSdp.toMap(),
 | 
						|
//     };
 | 
						|
//     return await connectionHub.invoke('AnswerOfferAsync', args: [caller, jsonEncode(payload)]);
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   // HangUpAsync(string currentUserId, string targetUserId)
 | 
						|
//   Future<dynamic> hangupCall(String from, to) async{
 | 
						|
//     return await connectionHub.invoke('HangUpAsync', args: [from, to]);
 | 
						|
//   }
 | 
						|
//
 | 
						|
//   // CallAccepted(string currentUserId,string targetUserId)
 | 
						|
//   Future<dynamic> acceptCall(String from, to) async{
 | 
						|
//     // return await connectionHub.send(methodName: 'CallAccepted', args: [from, to]);
 | 
						|
//     return await connectionHub.invoke("CallAccepted", args: [ from, to]);
 | 
						|
//   }
 | 
						|
//
 | 
						|
//
 | 
						|
//   bool getConnectionState() {
 | 
						|
//     if (connectionHub.state == HubConnectionState.connected) return true;
 | 
						|
//     if (connectionHub.state == HubConnectionState.disconnected) return false;
 | 
						|
//     return false;
 | 
						|
//   }
 | 
						|
// }
 | 
						|
//
 | 
						|
//
 | 
						|
// class CallUser{
 | 
						|
//   String Id;
 | 
						|
//   String UserName;
 | 
						|
//   String Email;
 | 
						|
//   String Phone;
 | 
						|
//   String Title;
 | 
						|
//   dynamic UserStatus;
 | 
						|
//   String Image;
 | 
						|
//   int UnreadMessageCount = 0;
 | 
						|
//
 | 
						|
//   CallUser.from(Map map){
 | 
						|
//     Id = map['Id'];
 | 
						|
//     UserName = map['UserName'];
 | 
						|
//     Email = map['Email'];
 | 
						|
//     Phone = map['Phone'];
 | 
						|
//     Title = map['Title'];
 | 
						|
//     UserStatus = map['UserStatus'];
 | 
						|
//     Image = map['Image'];
 | 
						|
//     UnreadMessageCount = map['UnreadMessageCount'];
 | 
						|
//   }
 | 
						|
// } |