I've a puzzling behaviour.
I two clients on a dedicated network. I have an iPad connected, and am also running via the Unity Remote 5.
There are two clients in ch1: iPad:16 and Neilos:17.
iPad asks both itself and Neilos to join a match (ch2), like so:
// Ask self to join
tno.Send ("PleaseJoinMe", tno.ownerID, Constants.FIGHT_CHANNEL, tno.ownerID, target.ToDataNode ());
if (opponentPlayer) {
// If we have opponent, ask them to join as well
Debug.LogWarningFormat ("Ask the opponent '{0}' ({1}) to join", opponentPlayer.tno.name, opponentPlayer.tno.owner.id);
tno.Send ("PleaseJoinMe", opponentPlayer.tno.owner.id, Constants.FIGHT_CHANNEL, tno.ownerID, location.ToDataNode ());
}
The RFC is:
[RFC]
public void PleaseJoinMe (int channelID, int requestingPlayerID, DataNode targetLocDN)
{
// Update target state for this player
NamedLocation newTargetLocation = NamedLocation.FromDataNode (targetLocDN);
Debug.LogFormat ("{0} received join request. {1} has asked us to join {2}, targetting {3}.",
ToString(),
TNManager.GetPlayer (requestingPlayerID).name,
channelID,
newTargetLocation
);
targetLocation = newTargetLocation;
// Join and leave the lobby
TNManager.JoinChannel (Constants.FIGHT_CHANNEL, "Game", true);
}
The logging on the iPad says:
LobbyPlayerUI: Ipad, id: 16 is starting the match against LobbyPlayerUI: Neilos, id: 17
Ask the opponent 'LobbyPlayer(Clone)' (17) to join
LobbyPlayerUI: Ipad, id: 16 received join request. Ipad has asked us to join 2, targetting [Neilos -41.1068840026855,174.889251708984 @ 34.3732681274414].
Lobby UI for Ipad destroyed
Lobby UI for Neilos destroyed
Which is as expected, as the iPad, through RFC, is asking itself to join the fight channel.
Yet I never see the RFC message for Neilos (17) on the other side.
I *do* see what I think is an incorrect message.
The RFCs in this case are sent to specific players. iPad is sending a request to Neilos (17).
Yet, what I see on Neilos is:
LobbyPlayerUI: Ipad, id: 16 received join request. Ipad has asked us to join 2, targetting [Ipad -41.1069030761719,174.889312744141 @ 37.5763320922852].
That seems ... incorrect. The client (Neilos) receives a single message, but it appears to be sent to an object who's owner is iPad, not Neilos.
That isn't what iPad had asked for, on it's original tno.Send, directed at client 17 (Neilos). Why would the RFC be called on a TNBehavior that isn't owned by playerID=17 (Neilos)?
'Neilos' receives no other messages.
I do note that the LobbyUI (TNBehaviour) for Neilos is destroyed because a new level is loaded (as part of joining ch2) at the end of the RFC. iPad loads a new level as soon as it receives it's own RFC call. However, before this happens iPad has already sent the "PleaseJoinMe" RFC to the other client. I even said please

It seems the RFC to 17 is being sent to the wrong object on the other network member (Neilos).
Even when I remove the code that joins ch2, and don't leave ch1.. that is, when I make it not load the new level, and just sit there, no other messages are received by Neilos.
Ideas?
I'm out of them myself.