internal override void OnInvokeBroadcastMethodNetworkly(BrodcastMethodEventArgs brodcastMethodEventArgs) { if (!IsRunning) { throw new Exception("No connection exist!"); } brodcastMethodEventArgs.ShouldInvokeSynchronously ??= brodcastMethodEventArgs.NetworkInterface == NetworkInterfaceType.TCP; BroadcastPacket packet; packet = new BroadcastPacket(brodcastMethodEventArgs.NetworkIdentity.Id, brodcastMethodEventArgs.MethodName, brodcastMethodEventArgs.ShouldInvokeSynchronously.Value, brodcastMethodEventArgs.MethodArgs); ParseBroadcastPacket(packet, false, EndPointId.InvalidIdentityId, new SocketInfo(null, serverPort, brodcastMethodEventArgs.NetworkInterface)); }
private protected virtual void ParsePacket(PacketId packetId, object[] args, EndPointId endPointId, SocketInfo socketInfo) { switch (packetId) { case PacketId.LobbyInfo: LobbyInfoPacket lobbyInfoPacket = new LobbyInfoPacket(args.ToList()); ParseLobbyInfoPacket(lobbyInfoPacket, endPointId, socketInfo); break; case PacketId.BroadcastMethod: BroadcastPacket broadcastPacket = new BroadcastPacket(args.ToList()); ParseBroadcastPacket(broadcastPacket, broadcastPacket.ShouldInvokeSynchronously, endPointId, socketInfo); break; case PacketId.Command: CommandPacket commandPacket = new CommandPacket(args.ToList()); ParseCommandPacket(commandPacket, commandPacket.ShouldInvokeSynchronously, endPointId, socketInfo); break; case PacketId.SyncVar: SyncVarPacket syncVarPacket = new SyncVarPacket(args.ToList()); ParseSyncVarPacket(syncVarPacket, endPointId, socketInfo); break; case PacketId.SpawnObject: SpawnObjectPacket spawnObjectPacket = new SpawnObjectPacket(args.ToList()); ParseSpawnObjectPacket(spawnObjectPacket, endPointId, socketInfo); break; case PacketId.SyncObjectVars: SyncObjectVars syncObjectVars = new SyncObjectVars(args.ToList()); ParseSyncObjectVars(syncObjectVars, endPointId, socketInfo); break; default: throw new Exception("Invalid packet recived, id: " + args[0]); } }
private protected override void ParseBroadcastPacket(BroadcastPacket broadcastPacket, bool shouldInvokeSynchronously, EndPointId endPointId, SocketInfo socketInfo) { BroadcastPacket(broadcastPacket, endPointId, socketInfo); base.ParseBroadcastPacket(broadcastPacket, shouldInvokeSynchronously, endPointId, socketInfo); }
private protected virtual void ParseBroadcastPacket(BroadcastPacket broadcastPacket, bool shouldInvokeSynchronously, EndPointId endPointId, SocketInfo socketInfo) { ParseMethodPacket(broadcastPacket, shouldInvokeSynchronously, socketInfo); }