import 'dart:convert'; import 'package:flutter_webrtc/flutter_webrtc.dart'; import 'package:job_app/singletons/user_info.dart'; import 'package:web_socket_channel/io.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; class WebRTCClient{ static final URL = "wss://server.thejob.net/signaling"; WebSocketChannel socket ; MediaStream localStream; // WebRTC STUN servers Map configuration={ "iceServers": [ {'urls': 'stun:stun.stunprotocol.org:3478'}, {"url": "stun:stun.l.google.com:19302"}, ] }; final Map constraints ={ 'audio': true, 'video':{ 'facingMode':'user', } }; Future connect()async{ socket = IOWebSocketChannel.connect(URL); print("Connected"); } Future openUserMedia( RTCVideoRenderer localVideo, RTCVideoRenderer remoteVideo, ) async { await localVideo.initialize(); MediaStream stream = await navigator.mediaDevices.getUserMedia(constraints); localVideo.srcObject = stream; localStream = stream; remoteVideo.srcObject = await createLocalMediaStream('key'); } onSocketMessage()async{ print("entered"); try { socket.sink.add('{"fromuser":"153825","too":"153803","sdp":null,"candidate":null,"type":"join","data":"1538031640615282927"}'); } catch (e, s) { print(s); } } }