Yes. Those 4 points are correct.
We have the Wi-Fi network provided by our accessory. It is using an ESP32 to provide the AP and Wi-Fi services.
We first started noticing the issue after upgrading to iOS 15.1. We notice different results across 3 iPhone X's.
Post
Replies
Boosts
Views
Activity
We are using TCP. The connection is off iDevice to our hardware device.
I tried to do a packet trace but after running the 'rvictl -s ' command the connection succeeds to the iPhone but drops after 10-15 secs.
It shows up in the list and then disappears. I use 'ifconfig -l' to check.
Also, the issue is intermittent. Sometimes, the socket connection works without any failures and at other times it just refuses to connect or takes an unreasonably long time to succeed [upto 60 secs].
Would you be able to give us some assistance as to where and how to enable - 'nw_tcp_options_set_enable_keepalive'. Which object do we set it for?
We have tried going through the available documentation but could not find any examples to implement.
"becomes unavailable" has the following scenarios for us -
There is a TCP connection in place and the iPhone[TCP client] goes out of range and therefore the connection is lost to the server.
In this instance, we need to reestablish the connection when the iPhone is back in range.
The iPhone does not need to send any request to the server but needs to continuosly receive data (eg: every sec) from the server for live telemetry.
There is a TCP connection in place and the server disappears off the network - eg: out of range or turns its power off.
Does 'nw_connection_t' have a 'state' property that can be checked on a timely basis to identify the state of the connection?
We have also been using - CFStreamCreatePairWithSocketToHost, CFReadStreamRef, CFWriteStreamRef in our existing application.
Will this continue to be supported in future or are there chances of this becoming redundant as well?
Point being, that if 'nw_connection_t' does not serve our purpose, then do we have a potential long term solution in using CFStreamCreatePairWithSocketToHost instead of our current GCDAsyncSocket?
Thanks for the sample code. We have been able to send/receive data using the above code.
However, we have now run into some new problems.
nw_connection_t client [in this case the iPhone] does not get an event handler if the TCP server becomes unavailable and therefore has no means of handling the disconnect.
What would be the right process to handle multiple client TCP socket connections to multiple servers? Would be able to provide us with some sample code?
We are using TCP.
We are not using TLS.
We are attempting connections to a local network address.
At the same time, we would like to go ahead with your suggestion and use the Network Framework.
Our App needs to establish multiple asynchronous sockets for read/write to our local hardware devices. Is there a guided procedure that you can point us to in order to expedite the migration process so that we get this resolved for our clients ASAP?
Thanks
Have tried a non-blocking function call but it still results in a crash.
The C++ API that I am calling is blocking the thread as it uses OpenGL, which I am told requires the thread to be blocked.