void HandleServerDisconnect(object sender, DisconnectedEventArgs args)
    {
        Connection connection = (Connection)sender;

        Debug.Log("Server connection at " + connection.EndPoint + " lost");
        serverConn = null;
        args.Recycle();
    }
Esempio n. 2
0
        private static void ClientDisconnectHandler(object sender, DisconnectedEventArgs args)
        {
            Connection connection = (Connection)sender;

            Console.WriteLine("Connection from " + connection.EndPoint + " lost");

            args.Recycle();
        }
Esempio n. 3
0
        /// <summary>
        /// Servers the disconnect handler.
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="args">Arguments.</param>
        private static void ServerDisconnectHandler(object sender, DisconnectedEventArgs args)
        {
            Connection connection = (Connection)sender;

            Console.WriteLine("Server connection at " + connection.EndPoint + " lost");
            connection = null;
            args.Recycle();
        }
Esempio n. 4
0
        static void DisconnectionHandler(object sender, DisconnectedEventArgs args)
        {
            Connection connection = (Connection)sender;

            Console.WriteLine(connection.EndPoint.ToString() + " disconnected. Waiting for him to reconnect.");
            if (userByConnection.ContainsKey(connection))
            {
                Task t = new Task(() => WaitReconnect(userByConnection[connection].session));
                t.ContinueWith((ta) => DisposeTask(ta));
                t.Start();
            }
            args.Recycle();
        }
Esempio n. 5
0
        /// <summary>
        /// Clients the disconnect handler.
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="args">Arguments.</param>
        private void ClientDisconnectHandler(object sender, DisconnectedEventArgs args)
        {
            Connection connection = (Connection)sender;

            Console.WriteLine("Connection from " + connection.EndPoint + " lost");
            String UIDBuffer = String.Empty;

            //Cerca e restituisci il tutto
            foreach (var conn in clients)
            {
                if (conn.Value == connection)                 //SENDTOSERVER
                {
                    UIDBuffer = conn.Key;
                    Console.WriteLine("UID TO DESTROY: " + UIDBuffer);
                }
            }

            //https://stackoverflow.com/posts/1608949/revisions //Debug
            //Delete client disconnected
            clients.RemoveAll(item => item.Value.Equals(connection));

            //Encode FlatBuffer
            //Create flatbuffer class
            FlatBufferBuilder fbb = new FlatBufferBuilder(1);

            StringOffset SOUIDBuffer = fbb.CreateString(UIDBuffer);

            HazelMessage.HMessage.StartHMessage(fbb);
            HazelMessage.HMessage.AddCommand(fbb, (sbyte)CommandType.DISCONNECTEDCLIENT);
            HazelMessage.HMessage.AddAnswer(fbb, SOUIDBuffer);
            var offset = HazelMessage.HMessage.EndHMessage(fbb);

            HazelMessage.HMessage.FinishHMessageBuffer(fbb, offset);
            //Reply to all Client
            using (var ms = new MemoryStream(fbb.DataBuffer.Data, fbb.DataBuffer.Position, fbb.Offset))
            {
                //Add type!
                //https://stackoverflow.com/questions/5591329/c-sharp-how-to-add-byte-to-byte-array
                byte[] newArray = new byte[ms.ToArray().Length + 1];
                ms.ToArray().CopyTo(newArray, 1);
                newArray[0] = (byte)SendType.SENDTOSERVER;
                foreach (var conn in clients)
                {
                    conn.Value.SendBytes(newArray, SendOption.Reliable);
                    Console.WriteLine("Send to: " + conn.Value.EndPoint.ToString());
                }
            }
            args.Recycle();
        }
Esempio n. 6
0
        /// <summary>
        /// Clients the disconnect handler.
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="args">Arguments.</param>
        private void ClientDisconnectHandler(object sender, DisconnectedEventArgs args)
        {
            Connection connection = (Connection)sender;

            Console.WriteLine("Connection from " + connection.EndPoint + " lost");
            String UIDBuffer = String.Empty;

            //Cerca e restituisci il tutto
            foreach (var conn in clients)
            {
                if (conn.Value == connection) //SENDTOSERVER
                {
                    UIDBuffer = conn.Key;
                    Console.WriteLine("UID TO DESTROY: " + UIDBuffer);
                }
            }

            //https://stackoverflow.com/posts/1608949/revisions //Debug
            //Delete client disconnected
            clients.RemoveAll(item => item.Value.Equals(connection));

            BitBuffer data = new BitBuffer(1024);

            data.AddByte((byte)CommandType.DISCONNECTEDCLIENT)
            .AddString(UIDBuffer);

            Console.WriteLine("BitBuffer: " + data.Length.ToString());

            byte[] BufferNetStack = new byte[data.Length];
            data.ToArray(BufferNetStack);
            data.Clear();

            //Add type!
            //https://stackoverflow.com/questions/5591329/c-sharp-how-to-add-byte-to-byte-array
            byte[] newArray = new byte[BufferNetStack.Length + 1];
            BufferNetStack.CopyTo(newArray, 1);
            newArray[0] = (byte)SendType.SENDTOSERVER;
            foreach (var conn in clients)
            {
                conn.Value.SendBytes(newArray, SendOption.Reliable);
                Console.WriteLine("Send to: " + conn.Value.EndPoint.ToString());
            }
            args.Recycle();
        }