Flutter webrtc Failed to set remote answer sdp - flutter

I am trying to connect two peer in flutter webrtc but i am getting below error.I am using firebase as a signalling server.
[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Unable to RTCPeerConnection::setRemoteDescription: peerConnectionSetRemoteDescription(): WEBRTC_SET_REMOTE_DESCRIPTION_ERROR: Failed to set remote answer sdp: Called in wrong state: stable
I am using below code in listening to the changes in firebase
if (val['t'] == "ans") {
assert(isInitiator);
_peerCon.setRemoteDescription(
RTCSessionDescription(
val['sdp'],
val['tp'],
),
);
return;
}

One peer connection can only set one remote description.
You are trying to setRemoteDescription on a peer with an already established connection. That's why you getting this error.
Check this thread for more details:
Failed to set remote answer sdp: Called in wrong state: stable

Related

Failed to create push channel: 13006 Extended code: 0x800705b4

I'm having an issue with Flutter FCM web push notifications. Everything works perfectly fine in Chrome, but in Edge I get the following error:
Uncaught (in promise) Error: AbortError: Registration failed - push service error
at Object.createErrorWithStack (errors.dart:284:10)
at Function._throw (core_patch.dart:288:28)
at Function.throwWithStackTrace (errors.dart:108:5)
at async._AsyncCallbackEntry.new.callback (zone.dart:1413:11)
at Object._microtaskLoop (schedule_microtask.dart:40:11)
at _startMicrotaskLoop (schedule_microtask.dart:49:5)
at async_patch.dart:166:15
The issue appears to be intermittent. Sometimes it works and sometimes it doesn't. Killing Edge tasks/rebooting doesn't seem to help, but resetting network adapter - does help. The edge://push-internals shows following error:
Subscribe failed
Occurred: 3/29/2022, 12:50:38 PM PDT
Status: Failed to create push channel: 13006 Extended code: 0x800705b4
Server key: BDOU99+h67HcA6J...2xGpWwzjfAnG4=
Type: Service worker
origin: http://localhost:50000/
service-worker-registration-id: 2
The application is setup as described in
Flutter Fire Web setup and Usage.
Google search on Failed to create push channel: 13006 Extended code: 0x800705b4 returns no results, but is the key here. Anybody knows what that means?
Non-debug Edge browser log:
Connection status
Type: WinRT WNS client
Server: https://client.wns.windows.com/
State: Disconnected
Disconnected: 3/29/2022, 12:56:34 PM PDT
Disconnect reason: Connection error: 13018
Connection attempts: 0

Flutter Unhandled Exception: SocketException: OS Error: Broken pipe, errno = 32, address = 10.0.2.2, port = 51420

I am using Flutter with Flask at back end. I want to send an image from flutter to Flask for processing.
enter image description here
But I am getting this error in Android studio:
[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: SocketException: OS Error: Broken pipe, errno = 32, address = 10.0.2.2, port = 51420
My flask terminal says:
127.0.0.1 - - [11/May/2021 23:07:56] "←[37mPOST / HTTP/1.1←[0m" 200 -
Your server process has received a SIGPIPE writing to a socket. This usually happens when you write to a socket fully closed on the other (client) side. This might be happening when a client program doesn't wait till all the data from the server is received and simply closes a socket (using close function).
In a C program you would normally try setting to ignore SIGPIPE signal or setting a dummy signal handler for it. In this case a simple error will be returned when writing to a closed socket. In your case a python seems to throw an exception that can be handled as a premature disconnect of the client.

Flutter - Socket.Connect() - SocketException: OS Error: Connection timed out

When I was working on debug mode (with "flutter run") by using my device (real), Socket.Connect() method doesn't work.
Also I would like to say that this Connect method is in "dart:io" library.
In shortly;
I opened a server (TCP) with Python.
I wrote the Flutter client like below to be able to connecting to the server in Python.
Future den() async {
print("Started");
Socket sock = await Socket.connect("192.168.0.159", 5431);
print("Done +++++++++++++++++++++++++"); }
However, I took a SocketError as Connection time out.
The error message I took:
E/flutter (17655): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: SocketException: OS Error: Connection timed out, errno = 110, address = 192.168.0.159, port = 43836
NOTE:
I tried to change the manifest file by adding INTERNET permission, but it is not working.
It was a strange problem, because there is no problem the code I shared. Windows Defender performed a rule to block to open a port as server. Hence, I started the server on my machine, however, I couldn't connect it from my Android device.
Maybe, the error code that is shown by Flutter isn't clear. If you took a error about socket programming for connection or binding, looking to Defender (or firewall) can be affective method. Unfortunately, as I was just starting to learn Flutter, I thought of checking out Defender afterwards.

problem with flutter and mongodb connection

import 'package:mongo_dart/mongo_dart.dart';
main() async{
Db db = new Db("mongodb://localhost:27017/workouts");
await db.open();
print("success ---------------------------------");
}
this symple code and dont connect, i dont know why.
this is the output:
Syncing files to device Android SDK built for x86...
Restarted application in 306ms.
E/flutter ( 5415): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: SocketException: OS Error: Connection refused, errno = 111, address = localhost, port = 52206
E/flutter ( 5415): #0 _ConnectionManager._connect (package:mongo_dart/src/network/connection_manager.dart:23:5)
....
and more logs
¿some help? :(
solved ==> https://stackoverflow.com/a/55786011/12369361
due to use emulator I need to use 10.0.2.2 instead of localhost
I suppose that you have a local mongoDB server. If it is the case, you have to connect your local server and your android phone to the same network (through wifi).
Then get the IP of your local server and replacing localhost in your url with the IP you found.
If you can't, it is possible that your firewall is blocking your requests.

How to handle the error "UNet Client Disconnect Error: Timeout"?

How to handle the error "UNet Client Disconnect Error: Timeout"? How not reboot the application, when it occurs?
I now resolve this issue.
I think this can help you too.
myClient.RegisterHandler(MsgType.Error, OnError);
void OnError(NetworkMessage msg){
//Error handler code
}
This Error client receive with "UNET Client Disconnect Error: Timeout".
My solution: If i not have server. I set current client as Server.