I've built an Android app using Cirrus that allows users on a LAN to chat in Morse code! - You can find it on the Android Market by searching for 'Morse Intercom'.
It works fine on my network, lots of other networks, but not on probably the most popular fast broadband fibre network in the UK
A friend of mine has let me piggyback on her network from this provider, and the problem appears to be that the UDP multicast packets RTMFP transmits just aren't being put on the wireless network. FYI the multicast address I use is IP 220.127.116.11 port 32112 .
This is probably fixable in the router, but 99.5% of users will never mess around with the router (and why should they), and if possible I would like to fix this in RTMFP.
Is it possible for me to ask RTMFP to not use UDP multicast, but instead to use UDB broadcast for discovering peers on the LAN ? The problematical router (and all others?) supports UDP broadcasting.
I tried setting 'groupspec.ipMulticastMemberUpdatesEnabled = false;' but this just stopped the app working on anything! What is the purpose of this option?
To connect without using Cirrus server assistance I use: nc.connect("rtmfp:");
The complete function I use for setting up multicasting is:
|private function setupGroup():void|
|// Create a new Group Specifier object|
|//trace("setUpGroup: groupSpec = new GroupSpecifier('myGroup/groupA')");|
|trace("setUpGroup: groupSpec = new GroupSpecifier('" + MY_UNIQUE_GROUP_NAME + "')");|
|var groupspec:GroupSpecifier = new GroupSpecifier(MY_UNIQUE_GROUP_NAME);|
|// Enable posting|
|trace("setUpGroup: groupspec.postingEnabled = true");|
|groupspec.postingEnabled = true;|
|// Specifies whether information about group membership can be exchanged on IP multicast sockets|
|trace("setUpGroup: groupspec.ipMulticastMemberUpdatesEnabled = true");|
|groupspec.ipMulticastMemberUpdatesEnabled = true;|
|// Causes the associated NetStream or NetGroup to join the specified IP multicast group and listen to the specified UDP port.|
|trace("setUpGroup: groupspec.addIPMulticastAddress('" + MY_MULTICAST_ADDRESS + "')");|
|// Constructs a NetGroup on the specified NetConnection object and joins it to the group specified by groupspec.|
|trace("setUpGroup: group = new NetGroup(nc,groupspec.groupspecWithAuthorizations())");|
|group = new NetGroup(nc,groupspec.groupspecWithAuthorizations());|
|// Set the NET_STATUS event listener|
In conclusion - On a LAN with up to 250 or so hosts, I can't see why RTMFP shouldn't be able to use UDP broadcasting as an alternative to UDP Multicasting. Can it, and if so how?