コード例 #1
0
ファイル: Network.cs プロジェクト: midgithub/KingNetwork
    public void OnMessageReceived(IKingBuffer kingBuffer)
    {
        switch (kingBuffer.ReadMessagePacket <MyPackets>())
        {
        case MyPackets.PlayerPositionsArray:

            var lengthArr = kingBuffer.ReadInteger();

            Debug.Log($"Got positions array data num : {lengthArr}");

            for (int i = 0; i < lengthArr; i++)
            {
                var playerid = kingBuffer.ReadInteger();

                if (!netPlayersDictionary.ContainsKey(playerid))
                {
                    netPlayersDictionary.Add(playerid, new NetPlayer());
                }

                netPlayersDictionary[playerid].X = kingBuffer.ReadFloat();
                netPlayersDictionary[playerid].Y = kingBuffer.ReadFloat();
                netPlayersDictionary[playerid].Z = kingBuffer.ReadFloat();
            }

            break;
        }
    }
コード例 #2
0
        /// <summary>
        /// Method responsible for execute the callback of on message received handler.
        /// </summary>
        /// <param name="client">The client instance.</param>
        /// <param name="kingBuffer">The king buffer from received message.</param>
        private void OnMessageReceived(IClient client, IKingBuffer kingBuffer)
        {
            try
            {
                switch (kingBuffer.ReadMessagePacket <MyPackets>())
                {
                case MyPackets.PlayerPosition:

                    float x = kingBuffer.ReadFloat();
                    float y = kingBuffer.ReadFloat();
                    float z = kingBuffer.ReadFloat();

                    Console.WriteLine($"Got position packet : {x} | {y} | {z}");

                    _networkPlayersDictionary[client].X = x;
                    _networkPlayersDictionary[client].Y = y;
                    _networkPlayersDictionary[client].Z = z;

                    _networkPlayersDictionary[client].Moved = true;
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}.");
            }
        }
コード例 #3
0
ファイル: KingServer.cs プロジェクト: midgithub/KingNetwork
 /// <summary>
 /// Method responsible for send message to specific connected client.
 /// </summary>
 /// <param name="client">The client instance.</param>
 /// <param name="kingBuffer">The king buffer of received message.</param>
 public void SendMessage(IClient client, IKingBuffer kingBuffer)
 {
     try
     {
         client.SendMessage(kingBuffer);
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #4
0
ファイル: KingClient.cs プロジェクト: midgithub/KingNetwork
 /// <summary>
 /// Method responsible for send message to connected server.
 /// </summary>
 /// <param name="kingBuffer">The king buffer to send message.</param>
 public void SendMessage(IKingBuffer kingBuffer)
 {
     try
     {
         _networkListener.SendMessage(kingBuffer);
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #5
0
 /// <summary>
 /// Method responsible for send message to connected server.
 /// </summary>
 /// <param name="kingBuffer">The king buffer of received message.</param>
 public override void SendMessage(IKingBuffer kingBuffer)
 {
     try
     {
         _stream.BeginWrite(kingBuffer.ToArray(), 0, kingBuffer.Length(), null, null);
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #6
0
ファイル: RunClients.cs プロジェクト: midgithub/KingNetwork
 /// <summary>
 /// Method responsible for execute the callback of message received from server in client.
 /// </summary>
 /// <param name="kingBuffer">The king buffer from received message.</param>
 private static void OnMessageReceived(IKingBuffer kingBuffer)
 {
     try
     {
         _messagesReceived++;
         _dataReceived += kingBuffer.Length();
         _bufferLength  = kingBuffer.Length();
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #7
0
ファイル: KingServer.cs プロジェクト: midgithub/KingNetwork
 /// <summary>
 /// Method responsible for send message to all connected client minus one specific client.
 /// </summary>
 /// <param name="client">The client instance.</param>
 /// <param name="kingBuffer">The king buffer of received message.</param>
 public void SendMessageToAllMinus(IClient client, IKingBuffer kingBuffer)
 {
     try
     {
         foreach (var clientToSend in GetAllClients().Where(c => c.IsConnected && c.Id != client.Id))
         {
             SendMessage(clientToSend, kingBuffer);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #8
0
ファイル: KingServer.cs プロジェクト: midgithub/KingNetwork
 /// <summary>
 /// Method responsible for send message to all connected client.
 /// </summary>
 /// <param name="kingBuffer">The king buffer of received message.</param>
 public void SendMessageToAll(IKingBuffer kingBuffer)
 {
     try
     {
         foreach (var client in GetAllClients().Where(c => c.IsConnected))
         {
             SendMessage(client, kingBuffer);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #9
0
ファイル: RunServer.cs プロジェクト: midgithub/KingNetwork
        /// <summary>
        /// Method responsible for execute the callback of message received from client in server.
        /// </summary>
        /// <param name="client">The client instance.</param>
        /// <param name="kingBuffer">The king buffer from received message.</param>
        private static void OnMessageReceived(IClient client, IKingBuffer kingBuffer)
        {
            try
            {
                _server.SendMessage(client, kingBuffer);

                _messagesReceived++;
                _dataReceived += kingBuffer.Length();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}.");
            }
        }
コード例 #10
0
ファイル: Client.cs プロジェクト: midgithub/KingNetwork
 /// <summary>
 /// Method responsible for send message to client.
 /// </summary>
 /// <param name="kingBuffer">The king buffer of received message.</param>
 public void SendMessage(IKingBuffer kingBuffer)
 {
     try
     {
         if (IsConnected)
         {
             _stream.Write(kingBuffer.ToArray(), 0, kingBuffer.Length());
             _stream.Flush();
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #11
0
 /// <summary>
 /// Method responsible for execute the callback of message received from server in client.
 /// </summary>
 /// <param name="kingBuffer">The king buffer from received message.</param>
 private static void OnMessageReceived(IKingBuffer kingBuffer)
 {
     try
     {
         switch (kingBuffer.ReadMessagePacket <MyPackets>())
         {
         case MyPackets.PacketOne:
             Console.WriteLine("OnMessageReceived for PacketOne");
             break;
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #12
0
ファイル: Program.cs プロジェクト: midgithub/KingNetwork
 /// <summary>
 /// Method responsible for execute the callback of on message received handler.
 /// </summary>
 /// <param name="client">The client instance.</param>
 /// <param name="kingBuffer">The king buffer from received message.</param>
 private void OnMessageReceived(IClient client, IKingBuffer kingBuffer)
 {
     try
     {
         switch (kingBuffer.ReadMessagePacket <MyPackets>())
         {
         case MyPackets.Message:
             Console.WriteLine($"Received message: {kingBuffer.ReadString()}.");
             _server.SendMessageToAllMinus(client, kingBuffer);
             break;
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #13
0
ファイル: KingClient.cs プロジェクト: midgithub/KingNetwork
 /// <summary>
 /// Method responsible for execute the callback of message received from client in server.
 /// </summary>
 /// <param name="kingBuffer">The king buffer of received message.</param>
 private void OnMessageReceived(IKingBuffer kingBuffer)
 {
     try
     {
         if (_clientPacketHandlers.TryGetValue(kingBuffer.ReadMessagePacket(), out var clientPacketHandler))
         {
             clientPacketHandler(kingBuffer);
         }
         else
         {
             MessageReceivedHandler(kingBuffer);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #14
0
ファイル: KingServer.cs プロジェクト: midgithub/KingNetwork
 /// <summary>
 /// Method responsible for execute the callback of message received from client in server.
 /// </summary>
 /// <param name="client">The connected client.</param>
 /// <param name="kingBuffer">The king buffer received from message.</param>
 private void OnMessageReceived(IClient client, IKingBuffer kingBuffer)
 {
     try
     {
         if (_serverPacketHandlers.TryGetValue(kingBuffer.ReadMessagePacket(), out var serverHandler))
         {
             serverHandler(client, kingBuffer);
         }
         else
         if (OnMessageReceivedHandler != null)
         {
             OnMessageReceivedHandler(client, kingBuffer);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Error: {ex.Message}.");
     }
 }
コード例 #15
0
        /// <summary>Putting stream</summary>
        /// <param name="buffer">King Buffer</param>
        internal void Putting(IKingBuffer buffer)
        {
            // Serialize all of the scope
            foreach (var syncPair in _syncsById)
            {
                // Write node identifier
                // Owner always receives ID 0
                if (syncPair.Value == this)
                {
                    buffer.WriteShort(OWNER_ID);
                }
                else
                {
                    buffer.WriteShort(syncPair.Value.SyncId);
                }

                // On writing
                syncPair.Value.InvokeOnWriting(buffer, false);
            }
        }
コード例 #16
0
 /// <summary>Invoke on writing</summary>
 /// <param name="buffer">King Buffer</param>
 /// <param name="full">True is full</param>
 internal void InvokeOnWriting(IKingBuffer buffer, bool full)
 {
     OnWriting.Invoke(buffer, full);
 }
コード例 #17
0
 /// <summary>
 /// This method is responsible for receive the message from client packet handler.
 /// </summary>
 /// <param name="kingBuffer">The king buffer of received message.</param>
 public abstract void HandleMessageData(IKingBuffer kingBuffer);
コード例 #18
0
ファイル: Chat.cs プロジェクト: yaserOSource/KingNetwork
 public void OnMessageReceived(IKingBuffer kingBuffer)
 {
     AddMessage(kingBuffer.ReadString());
 }
コード例 #19
0
 /// <summary>
 /// This method is responsible for receive the message from server packet handler.
 /// </summary>
 /// <param name="client">The connected client.</param>
 /// <param name="kingBuffer">The king buffer received from message.</param>
 public abstract void HandleMessageData(IClient client, IKingBuffer kingBuffer);
コード例 #20
0
 /// <summary>
 /// This method is responsible for receive the message from client packet handler.
 /// </summary>
 /// <param name="kingBuffer">The king buffer of received message.</param>
 public override void HandleMessageData(IKingBuffer kingBuffer)
 {
     Console.WriteLine("Received message in MyPacketHandlerOne");
 }
コード例 #21
0
 /// <summary>
 /// This method is responsible for receive the message from server packet handler.
 /// </summary>
 /// <param name="client">The connected client.</param>
 /// <param name="kingBuffer">The king buffer received from message.</param>
 public override void HandleMessageData(IClient client, IKingBuffer kingBuffer)
 {
     Console.WriteLine($"OnMessageReceived PacketOne from {client.Id}");
 }
コード例 #22
0
 /// <summary>
 /// Method responsible for send message to connected server.
 /// </summary>
 /// <param name="kingBuffer">The king buffer of received message.</param>
 public virtual void SendMessage(IKingBuffer kingBuffer)
 {
 }
コード例 #23
0
 /// <summary>Catching buffer</summary>
 /// <param name="buffer">King Buffer</param>
 internal void Catching(IKingBuffer buffer)
 {
     OnReading.Invoke(buffer);
 }