示例#1
0
        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));
        }
示例#2
0
        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]);
            }
        }
示例#3
0
 private protected override void ParseBroadcastPacket(BroadcastPacket broadcastPacket, bool shouldInvokeSynchronously, EndPointId endPointId, SocketInfo socketInfo)
 {
     BroadcastPacket(broadcastPacket, endPointId, socketInfo);
     base.ParseBroadcastPacket(broadcastPacket, shouldInvokeSynchronously, endPointId, socketInfo);
 }
示例#4
0
 private protected virtual void ParseBroadcastPacket(BroadcastPacket broadcastPacket, bool shouldInvokeSynchronously, EndPointId endPointId, SocketInfo socketInfo)
 {
     ParseMethodPacket(broadcastPacket, shouldInvokeSynchronously, socketInfo);
 }