0 votes
by (790 points)

We have devices running Windows Mobile (Windows Embedded Handheld) 6.5.3 and a .NET Compact Framework 3.5 application using the Rebex HTTPS Library Version 2019R3.

We register the Library using the following code:

HttpRequestCreator creator = new HttpRequestCreator();
creator.Settings.AutoConnectToInternet = AutoConnectType.Enabled;
creator.LogWriter = new Rebex.FileLogWriter(…);
creator.Register();

The devices can establish two kinds of network connections: WLAN (802.11n) and WWAN (2G/3G). On a device, where both network connections are enabled and connected, only the WLAN connection is used by the application, as intended.

After disabling WLAN, the WWAN connection is used. After re-enabling and re-connecting WLAN, this one should be used again (instead of WWAN), but data is still transferred via WWAN.

After restarting the application, only the WLAN connection is used again, as intended and observed before.

Questions:

  1. (How) Can Rebex tell me, which connection is currently used?
  2. (How) Can I change the connection used via Rebex?
  3. Why does the Rebex HTTPS Library stick to WWAN, after WLAN was disabled and re-enabled – and does not use WLAN, as observed after application restart?
  4. (How) Can I “reset” the Rebex HTTPS Library to use WLAN again, after having re-enabled it, without restarting the application? (Creating and registering a new HttpRequestCreator did not help.)

Can you guys help us?

Applies to: Rebex HTTPS

1 Answer

0 votes
by (5.1k points)
edited by

Hello mobile653,
thanks for the questions.

I would like to point out that our .Net CF Connection API is as simple as possible and the intended client is our HttpRequest.

From our API documentation. (method TryConnect).
Don't rely on this method in your application code. Different devices have different capabilities and an application code that initiates a reliable network connection may require the use of the vendor SDK. Even if this method returns true, it is possible that a subsequent HttpRequest or any other network request may fail.
All what the method does is following. The method tries to open a connection corresponding to the predefined network path that can be identified by the well-known value IID_DestNetInternet (436EF144-B4FB-4863-A041-8F905A62C572). Usually, if the device is not connected to the Wi-Fi network or LAN, calling this method initiates a connection to the mobile network (GPRS, EDGE, LTE and so on).

1) No, it is out of the scope of the ConnectionManager.
2) No, it is out of the scope of the ConnectionManager.
3) Your device does not close previously opened WWAN connection, HttpRequest sees the existing active connection and uses it. That's it, we are not trying to detect new connection and decide about the connection priority.
4)** Please try to call ConnectionManager.TryConnect method when you detect that WLAN is available and before the HttpRequest methods are used." TryConnect method closes the connection and tries to open a new connection. If your device does not exhibit other problems related to the connection priority, then the result of the call should be a new WLAN connection**.

https://api.rebex.net/##RebexTotalPack.chm/Html/M_Rebex_Net_ConnectionManagement_ConnectionManager_TryConnect.htm

That being said, many devices support detection of the type of the connection and we are able to write the comprehensive management of the connections.
If you are interested, consider please our custom development services. More info is here https://www.rebex.net/support/services/.

...