I am currently trying to create a 4-way 'random' chat type thing, with a php central server and using NetGroup's to connect all the users together (and Cirrus), each publishing one stream and playing all the others. It works, unless the connection can not be established with a neighbour in the NetGroup. In this case from what I understand, there are actually two separate NetGroup's with the same name and properties. Both connections receive the NetGroup.Connection.Success, etc and neither receive the NetGroup.Neighbor.Connect as they aren't connected (which is what I am expecting), but this does make it difficult to a) detect that there are two separate NetGroup's and b) who is behind a firewall or other device that stops the connection from working.
I guess the first one could be solved by waiting a certain time and then realising the new user isn't connected. However, this would complicate the server greatly, as it would have to check who is actually in the "real" NetGroup as well as dealing with situations were it's not sure who is or can. This would also not usually identify with two users wanting to be in the same group where the problem lies.
The only worthwhile solution I can think of is a server that connects using RTMFP to the NetGroup and then uses RTMP to the clients who can't, however I don't think such a server exists (except maybe FMS Enterprise 4, but not sure and it's probably way too expensive) and obviously can't create one as RTMFP isn't open source. So would the only solution be to force all the users to send their webcam feeds to the RTMP server, then it would send the feeds of those not in the group to a user(s) in the group and then all the other feeds to those who aren't in the group?
I'll state the questions now, as reading that back it's not all that obvious what I'm asking and sorry if some of these are obvious:
1. Is there anyway to detect that two NetGroup's with the same name exist, apart from that the neighbourCount's etc don't tally after a certain amount of time?
2. Is there anyway to detect which client(s) are unable to connect to NetGroup's so only they can be prevented from using the system, so that RTMP isn't necessary?
3. Are there any servers that can connect to a RTMFP NetGroup almost like a normal user and then offer the content over RTMP to send the streams from the group to the clients who can't and the from the clients that can't into the group? If so, how expensive?
4. Also, if trying to avoid the above route and just use a normal RTMP server. From the NetStream documentation, wouldn't I have to send the feeds for the webcams to all the users in the group, as no client could receive a NetStream over RTMP (or RTMFP for that matter) and then copy it to publish it to the NetGroup (or the RTMP server)? Seems like there are no methods to do this from the documentation