Web Socket and HTTP connection will work under under a carrier-provided satellite network?

We are currently working on enhancing our iOS app with satellite mode support, allowing users to access a limited set of core features even in the absence of traditional cellular or Wi-Fi connectivity. As part of this capability, we're introducing a chatbot feature that relies on both WebSocket and HTTP connections for real-time interaction and data exchange.

Given the constrained nature of satellite networks—especially in terms of latency, bandwidth, and connection stability—we're evaluating the feasibility of supporting these communication protocols under such conditions.

Could you please advise whether WebSocket and HTTP connections are expected to work over satellite networks?

Answered by DTS Engineer in 850059022

We call these networks ultra-constrained.

The default policy is to prohibit network connections from using ultra-constrained interfaces. Network framework allows you to opt in via the allowUltraConstrainedPaths property.

Network framework supports WebSocket but not HTTP.

Our preferred HTTP API, URLSession, does not expose an interface to opt in to ultra-constrained interfaces.

As to how practical this all is, I’m still researching that topic and I’ll post an update to this thread when I know more. However, my general advice when it comes to networking applies here, namely, to test in realistic scenarios. I hope to have some rough guidelines for what’s feasible or not, but the only way to see how things are going to work in the real world is to run tests in the world world.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Accepted Answer

We call these networks ultra-constrained.

The default policy is to prohibit network connections from using ultra-constrained interfaces. Network framework allows you to opt in via the allowUltraConstrainedPaths property.

Network framework supports WebSocket but not HTTP.

Our preferred HTTP API, URLSession, does not expose an interface to opt in to ultra-constrained interfaces.

As to how practical this all is, I’m still researching that topic and I’ll post an update to this thread when I know more. However, my general advice when it comes to networking applies here, namely, to test in realistic scenarios. I hope to have some rough guidelines for what’s feasible or not, but the only way to see how things are going to work in the real world is to run tests in the world world.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Thanks! I get your point here.

My another question would be related to detecting satellite network. Currently my app doesn't use Network library for any kind of communication, and our aim is to detect satellite mode and route the user to a particular user flow. I understand that Network framework allows to opt in via the allowUltraConstrainedPaths property.But in my case as I told we are not using Network library(we are using URLSession), so could you guide me here? Making dummy NWConnection or simply keeping a NWConnection just for detecting satellite connection is the right approach here?

Thanks in Advance!

You can use NWPathMonitor for this. Check out the isUltraConstrained property.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Our preferred HTTP API, URLSession, does not expose an interface to opt in to ultra-constrained interfaces.

Does that mean URLSession wont work in ultra constrained network?

Does that mean URLSession wont work in ultra constrained network?

Yes.

Oh, btw, it took a while but I eventually did find the info necessary to update the above-mentioned thread about the practicality of these networks. See this post.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Network framework supports WebSocket but not HTTP.

Does this mean that there is currently no way to make an HTTP request with an ultra constrained path? Does it also mean a websocket is the only way to move data over an ultra constrained path?

Web Socket and HTTP connection will work under under a carrier-provided satellite network?
 
 
Q