IPv6 support
Posted: 13 Jun 2016, 12:32
Recently a few customers reported their app being rejected by Apple for possible issues with IPv6 support and got back to us, asking if SmartFoxServer 2X and its APIs are compatible. The answer is certainly yes for all our API! (of course make sure you are using the latest version available on our website).
Given that our ISP still doesn't provide IPv6 connectivity, we setup a test environment as described in this Apple guide and made three tests, all successful. We decided to post this message to help you in testing your apps and, hopefully, get the same results. If not, we can further discuss your issues.
TEST 1
In this setup, both the client application and SmartFoxServer were running on the same MacBook.
SmartFoxServer was bound to the IPv6 address assigned by the iMac providing the connectivity (or it could have been bound to "::", meaning any available IPv6).
As client application we used the AdminTool, entering the IPv6 address in the connection panel.
The test was successful and we could connect to SmartFoxServer as expected.
This also works when entering ::1 in the connection panel, of course.
TEST 2
In this setup, the client application was running on the client MacBook and SmartFoxServer on the iMac providing IPv6 connectivity.
SmartFoxServer was bound to the IPv6 of the iMac.
As client application we used:
a) the AdminTool again
b) our Unity’s Advanced Connector example (with encryption turned off for sake of simplicity) executed in the Unity Editor*
c) again the Advanced Connector example, this time executed in Xcode, in a couple of iPad / iOS 9.3 simulators
In all cases of course we entered the IPv6 address of the iMac in the address field, and the test was always successful.
In particular this shows that SmartFoxServer works as expected in an IPv6-only network.
TEST 3
In this setup our test client (again the Advanced Connector example executed in the Unity Editor*) connected to an online SmartFoxServer instance through the iMac acting as an IPv6-to-IPv4 bridge. In this case we could connect and login to SmartFoxServer successfully using the domain name of the online server.
(*) Unity 5.3.5 or later is required; previous versions seem to have a bug preventing the connection using the domain name.
Given that our ISP still doesn't provide IPv6 connectivity, we setup a test environment as described in this Apple guide and made three tests, all successful. We decided to post this message to help you in testing your apps and, hopefully, get the same results. If not, we can further discuss your issues.
TEST 1
In this setup, both the client application and SmartFoxServer were running on the same MacBook.
SmartFoxServer was bound to the IPv6 address assigned by the iMac providing the connectivity (or it could have been bound to "::", meaning any available IPv6).
As client application we used the AdminTool, entering the IPv6 address in the connection panel.
The test was successful and we could connect to SmartFoxServer as expected.
This also works when entering ::1 in the connection panel, of course.
TEST 2
In this setup, the client application was running on the client MacBook and SmartFoxServer on the iMac providing IPv6 connectivity.
SmartFoxServer was bound to the IPv6 of the iMac.
As client application we used:
a) the AdminTool again
b) our Unity’s Advanced Connector example (with encryption turned off for sake of simplicity) executed in the Unity Editor*
c) again the Advanced Connector example, this time executed in Xcode, in a couple of iPad / iOS 9.3 simulators
In all cases of course we entered the IPv6 address of the iMac in the address field, and the test was always successful.
In particular this shows that SmartFoxServer works as expected in an IPv6-only network.
TEST 3
In this setup our test client (again the Advanced Connector example executed in the Unity Editor*) connected to an online SmartFoxServer instance through the iMac acting as an IPv6-to-IPv4 bridge. In this case we could connect and login to SmartFoxServer successfully using the domain name of the online server.
(*) Unity 5.3.5 or later is required; previous versions seem to have a bug preventing the connection using the domain name.