Example #1
0
        internal UnityMatchManagerServer()
        {
            udpNetwork = new UdpNetwork(1024 * Game.Config.MaxPlayers, 1024 * Game.Config.MaxPlayers);

            udpNetwork.InitAsServer(ProtocolConfig.Port);

            localPlayerId = ++playerIdSequence;

            var client = new Client(localPlayerId, null, true);

            clients.Add(client);

            packetWriter = new BinaryWriter(new MemoryStream(sendBuffer), Encoding.UTF8);
            packetReader = new BinaryReader(new MemoryStream(receiveBuffer), Encoding.UTF8);

            historyWriter = new BinaryWriter(new MemoryStream(commandsHistoryBuffer), Encoding.UTF8);

            futureCommands.Add(new PlayerCommand
            {
                playerId = 0,
                command  = new Commands.SetRandomSeed {
                    seed = (uint)Random.Range(0, 1000000)
                }
            });

            futureCommands.Add(new PlayerCommand
            {
                playerId = 0,
                command  = new Commands.AddPlayer {
                    id = localPlayerId
                }
            });
        }
        internal UnityMatchManagerClient(string serverAddress)
        {
            this.serverAddress = serverAddress;

            udpNetwork = new UdpNetwork(1024, 100 * 1024);

            udpNetwork.lastWriteRemoteIpEndPoint.Address = IPAddress.Parse(serverAddress);
            udpNetwork.lastWriteRemoteIpEndPoint.Port    = ProtocolConfig.Port;
            udpNetwork.InitAsClient();

            packetWriter = new BinaryWriter(new MemoryStream(sendBuffer), Encoding.UTF8);
            packetReader = new BinaryReader(new MemoryStream(receiveBuffer), Encoding.UTF8);

            userInterfaceManager.RegisterActivity(new NetworkActivity(this, userInterfaceManager.canvasObject.transform.Find("NetworkActivity").gameObject));
        }
Example #3
0
    private void Start()
    {
        btnServer.OnClickAsObservable().Subscribe(_ => NetworkHandler.Instance.RequestHandshake());
        btnList.OnClickAsObservable().Subscribe(_ => NetworkHandler.Instance.RequestList());
        btnPeerConnect.OnClickAsObservable().Subscribe(_
                                                       => NetworkHandler.Instance.RequestConnection(new IPEndPoint(IPAddress.Parse(inputPeerIP.text), int.Parse(inputPeerPort.text))));
        btnDirect.OnClickAsObservable().Subscribe(_
                                                  => UdpNetwork.SendData(inputChat.text, new IPEndPoint(IPAddress.Parse(inputIP.text), int.Parse(inputPort.text))));
        btnSend.OnClickAsObservable().Subscribe(_
                                                => NetworkHandler.Instance.SendCustomMessage(inputChat.text));

        UdpNetwork.receivedMessageHandler
        .AsObservable()
        .ObserveOnMainThread()
        .TakeUntilDestroy(this)
        .Skip(1)
        .Subscribe(x => ShowMessage($"FROM {x.Item2.Address} : {x.Item2.Port}\n{JsonConvert.SerializeObject(x.Item1)}"));

        UdpNetwork.sendingMessageNotifier
        .AsObservable()
        .ObserveOnMainThread()
        .TakeUntilDestroy(this)
        .Skip(1)
        .Subscribe(x => ShowMessage(x));

        List <Dropdown.OptionData> list = new List <Dropdown.OptionData>();

        foreach (var name in Enum.GetNames(typeof(Header)))
        {
            Dropdown.OptionData data = new Dropdown.OptionData();
            data.text = name;
            list.Add(data);
        }

        TimerObservable(3, 1f);

        //NetworkHandler.Instance.RequestHandshake();
    }