void HandleServerDisconnect(object sender, DisconnectedEventArgs args) { Connection connection = (Connection)sender; Debug.Log("Server connection at " + connection.EndPoint + " lost"); serverConn = null; args.Recycle(); }
private static void ClientDisconnectHandler(object sender, DisconnectedEventArgs args) { Connection connection = (Connection)sender; Console.WriteLine("Connection from " + connection.EndPoint + " lost"); args.Recycle(); }
/// <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(); }
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(); }
/// <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(); }
/// <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(); }