Giter Site home page Giter Site logo

Comments (6)

melihercan avatar melihercan commented on August 12, 2024

Do you have network connectivity between iOS and the signaling server? You can easily check this by opening a browser on iOS and enter server address with the port (in my code it is: https://192.168.1.48:5053). This should show the index page of the server.

from webrtcme.

alzubitariq avatar alzubitariq commented on August 12, 2024

Yes it is there , actually there was many configuration json files
Demo contains

Video-2021-04-28-220325

Video-2021-04-28-221053

from webrtcme.

melihercan avatar melihercan commented on August 12, 2024

Unlike Android, iOS simulator has no Camera support. That is why I run all my tests on an iOS phone. I thought you are getting the exception due to this call (iOS/MediaView.cs, line 46:
/var/ _videoCapturer = new Webrtc.RTCCameraVideoCapturer();
There is a workaround for this issue by using RTCFileVideoCapturer on simulator like this:
if (DeviceInfo.DeviceType == DeviceType.Virtual)
{
_videoCapturer = new RTCFileVideoCapturer();
_videoCapturer.Delegate = videoSource;
}
else
{
_videoCapturer = new RTCCameraVideoCapturer();
_videoCapturer.Delegate = videoSource;
}
I will add this later.

I did a quick debugging session and figured out that the exception is thrown even before that. It occurs during SignalR HubConnectionBuilder in file SignallingServerProxy and it is related to MessagePAckProtocol. See the comment at line 51:
//// iOS has problems with MessagePack:
//// https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/signalr/messagepackhubprotocol.md
//.If(DeviceInfo.Platform != DevicePlatform.iOS, builder => builder.AddMessagePackProtocol())
//// Workaround: tick 'Enable the Mono interpreter' option (unticked for release build)
Please check the link for more details, but briefly this has something to do with ahead of time compiling.
See the workaround:
Workaround: tick 'Enable the Mono interpreter' option (unticked for release build)
Unfortunately this option is grayed out for simulator.
So until further analysis and solution, using a real device looks like the only option for now.

from webrtcme.

melihercan avatar melihercan commented on August 12, 2024

Link:
MessagePack issue

from webrtcme.

alzubitariq avatar alzubitariq commented on August 12, 2024

Thank you for your response and effort.
I have one more question , you know most of networks like 4G , ADSL new routers have an Symmetric NATs where the ports keep changing randomly . which means first approach will fail (stun) In cases like this, we have to fall back to TURN
WhatsApp , Facebook Messenger and Skype using TURN approach and that's the expensive solution. So my question was do you think we have to follow TURN ?

from webrtcme.

melihercan avatar melihercan commented on August 12, 2024

In general, it is better to employ both STUN and TURN servers. Please check ITurnServerProxy interface. Here we are returning list of RTCIceServers, that can contain both STUN and TURN entries. WebRTC will try to use STUN first and if all STUNs fail, then it will employ TURN as fall back, so your connection will not fail due to Symmetric NATs for example. This is all handled in WebRTC automatically.

If you debug Xirsys server, you will see that they return IceServer entries both in STUN and TURN.

If you are sure that your clients can be NAT discoverable and not symmetric, or not filtered out by firewalls, then you can use STUN only ICE server entries like I do in my StunOnly example.

from webrtcme.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.