public static IDictionary <string, object> ToDictionary(this PacketReceivedCallbackArgs args)
        {
            var result = new Dictionary <string, object>
            {
                [typeof(IPacket).FullName] = args.Packet
            };

            return(result);
        }
        /// <summary>
        /// Called when <see cref="IPacket"/> received.
        /// </summary>
        /// <param name="args">The arguments.</param>
        /// <returns>Task that completes after all handlers has finished.</returns>
        private Task OnPacket(PacketReceivedCallbackArgs args)
        {
            var context = new PacketListenerContext(args.Packet, args.Connection);

            return(this.app(context.Environment));
        }