Closed mastersam92 closed 1 year ago
Sounds like a limitation caused by how tethering decides to locally network devices. It might not be giving uninterrupted access to the devices network. Maybe even all sorts of port restrictions.
Possibly out of scope.
Sounds like a limitation caused by how tethering decides to locally network devices. It might not be giving uninterrupted access to the devices network. Maybe even all sorts of port restrictions.
Possibly out of scope.
Tested on( used ports: 30003 - for https, 30000 - for http ): Few devices with different Android versions On few iPhones with 14 and 16 iOS versions On PC and apple's computers both with Chrome and apple - with Safari
And always one thing: Stream transmit and receive not working on device which share local WiFi network( i.e working as Access Point ). The same device with the same app/webpage, but connected to network that share other device - work perfectly
Is there any known restrictions for it ?
Described case is simple to reproduce even if you have one device + PC
In a general sense there isn't any restrictions on our end. Simply just a case of whether both ends can communicate with one another within the environment they are in. Different tethering options have all sorts of restrictions/configurations which might not be ideal. Not to mention they could also be enforcing their own local NAT which means routing might be all sorts of wonky.
Try outputting some logs, see what the candidates look like, compare addresses.
What ICE candidates does each device gather? Log them please.
What ICE candidates does each device gather? Log them please.
Architecture: Streamer app + signaling server( SocketIO ) together on some device, receiver connecting via IP
Log of success case( stream from Android, watch stream on Chrome, PC. Working in WiFi network from iPhone AP without internet connection ):
Unsuccess case. Streamer on device with WiFi AP. Signaling server hosted with streamer i.e on device with AP:
It would appear that the tethering environment is restricting candidate generation. Seems to be a local networking issue internally. Possibly due to an extra NAT layer or even some sort of isolation.
About working in local network without any internet connection: Stream works good when streaming device( transmitter ) and display device( receiver ) both connected to one network BUT none of them ran on device that sharing network.
I.e: Device "1" - connected to local WiFi Device "2" - connected to local WiFi Device "3" - share local WiFi for device 1 and 2 without Internet access
If try to stream from device 1 to device 2 - working If try to stream from device 2 to device 1 - working If try to stream OR receive stream on device 3 - not working
While try to receive stream on device 3 on log all seems OK - peer connections, tracks, etc But instead of some pictures from stream camera - just white screen. But before connections preview is black, after - white and seems as ready to show something but pictures isn't come
Similarly happens if try to stream or receive stream in app but with WebView( and "native" webview's webrtc )
As I think, it may be related to local address device that sharing network. It often 127.0.0.1 for local processes instead of 192.168.x.x for example. But in case serious problems with network address there would be problems with peer connections to, wouldn't there ?
What may be wrong and which workaround may be for this case ?
Expected Behavior
Success transmit and receive streaming
Observed Behavior
Not success
Steps to reproduce the issue
Share WiFi from device without internet access Connect other device Try to stream WebRTC from one device and receive on second or vice-versa
Platform Information